Datenbankauslastung protokollieren

23. November 2005 12:21

Hallo,

wir arbeiten mit der Version 3.60 und einer nativen Datenbank.

Da wir in der letzten Zeit arge Probleme mit der Leistung unseres Systems haben, möchte ich die Performance meiner DB testen.
Dazu möchte ich folgende Werte protokollieren:

Wenn unter Datei/Datenbank/Information ein Drilldown auf den Dantebanknamen macht und anschließend mit Strg+F8 in den Zoom geht, dann sieht man die Lese- und Schreibzyklen, sowie die Plattenauslastung.
Diese Werte möchte ich in einer Tabelle protokolliert haben, und zwar in regelmäßigen Abständen von ca 5 Sekunden.

Existiert bereits ein Report oder ähnliches, der diese Werte protokolliert? Wie würden man sonst an die Werte herankommen?

Gruß,
Guenther

23. November 2005 12:29

Hallo,
schau bei www.mibuso.com unter Downloads, dort ist irgendwo eine *.fob die eine ähnliche Funktionalität hat. (Suchbegriff "User Disk Monitor")

Du kannst auch eine eigene Form erstellen die auf das Table "2000000010 Datenbankdatei" zeigt erstellen.

Folgende Ursachen können Performace Probleme Verursachen:

1) Verwendung falscher Key´s (Kommt oft vor):!: :!: :!:
2) Navision DB oder MS SQL
3) Anzahl der FlowFields und CalcSums
4) Anzahl der Key´s pro Tabelle
5) Anzahl der Benutzer die die DB / Tabellen nutzen
6) An der Server HW
7) An der Client HW
...weitere Optionen möglich :!:
Gruß MIkka

Re: Datenbankauslastung protokollieren

23. November 2005 18:26

Hallo Guenther,

Guenther hat geschrieben:Hallo,
[...] Da wir in der letzten Zeit arge Probleme mit der Leistung unseres Systems haben, möchte ich die Performance meiner DB testen. [...]


Wie groß ist denn die Datenbank? Wenn nicht schon passiert, würde ich die Datenbank in mehrere kleinere Datenbankedateien aufteilen. Jede dieser Datei sollte auf eine anderen physikalischen Platte liegen. Wirkt manchmal wunder...

Gruß, Marc

23. November 2005 20:54

Mit dem "Performance Troubleshooting Guide" von der Navision Tools CD kann ein geschultes Auge in kürzester Zeit sofort den Flaschenhals der Anwendung finden.

Sind die Clients dann noch über mehrere Standorte verteilt, dann müsste man auch noch das Netzwerk in Betracht ziehen.
Das war jetzt erst vor kurzem bei einem Kunden der Fall; es musste einfach nur ein Router neu gebootet werden, schon lief alles wieder.

24. November 2005 11:29

Vielen Dank für eure Vorschläge.

Leider haben wir keine Tabellen 2000000007..200000000052. Demnach wirkt auch das Tool von mibuso.com nicht, da es auf eine Tabelle innerhalb dieses Bereiches zurückgreift. Wieso habe ich diese Tabellen eigentlich nicht??

Die Keys und anderen Felder habenw ir bereits prüfen lassen, da scheint nicht viel falsch zu sein, laut dem NSC.
In unseren Filialen setzen wir -via VPN angebunden- ThinClients mit Citrix ein, da steckt kein Engpaß. Wir sichern und stellen die DB regelmäßig wieder her, dann geht es zeitweise wieder schneller, aber bei 45 GB dauert mir das immer zu lange.

Die DB auf mehrere Platten aufzuteilen, hat unser NSC auch schon vorgeschlagen. Das würde jedoch Kosten verursachen, weswegen ich diese Variante eigentlich erstmal zurückstellen wollte. Wenns nicht anders geht, werde ich das natürlich machen müssen.

Die "Tools CD" ist nicht zufällig eine frei verfügbare Sammlung oder? Sonst werd ich mein NSC mal beauftragen, die CD zu besorgen.

Sind sonst noch weitere Vorschläge im Raum?

Gruß,
Guenther

24. November 2005 16:25

Hallo,
ein Teil der Tabellen ist im Objekt Designer nicht zu sehen!
Warum die Form bei dir nicht Funktioniert kann ich im Moment auch nicht sagen, evtl. Versionsabhängig.

Gehe wie folgt vor um die die Tabellen im 2000000000 Bereich zu nutzen:
1. Kategorie "Form"
2. New
3. Table (LookUp)
4. Wähle die gewünschte Quelle im 2000000000 Bereich
5. Wähle die gewünschte Ansicht (Tabelle oder Form)
6. Wähle die gewünschten Felder
7. Klicke auf Vorschau oder fertigstellen.

Ich denke das du den gleichen aha Effekt haben wirst wie ich!
Gruß [schild=4 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Mikka[/schild]

25. November 2005 15:06

Ahhh...der AHA-Effekt hat sich eingestellt. Vielen Dank, Mikka.
Damit hab ich schonmal die entsprechenden Einträge protokolliert.

Noch ne weitere Frage an Marc:

Wie splitten wir die DB denn in kleinere Dateien auf? Wir haben derzeit nur eine Datei in nem RAID auf 5 logischen Platten laufen.
Wenn das einen wirklichen Geschwindigkeitssprung bringen sollte, werden wir das mal machen.

Gruß,
Guenther

25. November 2005 16:20

Hallo Guenther,
unter -->"Datei-->Datenbank-->Erweitern" auf erweitert klicken.
Hier kann je Zeile ein Speicherort angegeben werden.
Den genauen Ablauf kann ich dir zur Zeit nicht genau sagen, aber
Wenn ich mich recht Erinnere gehst Du wie folgt vor
1. Lege ein Backup deiner DB an
2. Erstelle eine Aufgeteilte DB (Wichtig die DB muss auf Physikalisch getrennten Laufwerken dann liegen), wie oben beschrieben.
3. Importiere das Backup
(Die Angaben sind ohne Gewähr!)

Wichtig:
Probiere dies auf einer Evaluierungsumgebung :!:
Laut Navision Dokumentation sollten die Aufgeteilten DB Parts auf je einem Raid 1 Array liegen :!:

Weitere Informationen findest Du auf der Insatllations CD im Dokumentenordner
Gruß [schild=4 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Mikka[/schild]und viel Erfolg

Ps: Was mir gerade noch einfällt, die DB Nutzung soltte 80 % nicht übersteigen, sonst geht die Performace auch in den "Keller"

25. November 2005 20:17

Es sei noch anzumerken, dass nach dem Einlesen des Backups in die neue (verteilte) DB diese noch "optimiert" ist, also alle Daten liegen direkt hintereinander.
Ergo heißt das: Je nachdem, wieviel Traffic täglich auf der Datenbank ist (Anzahl User, Schreib-/Lese-Transaktionen, ...) kann es zwischen einigen Stunden und einigen Tagen dauern, bis die Performance-Steigerung "fühlbar" wird, da erst durch die aktive Nutzung die Daten quer über alle Platten verteilt werden.
Somit ist also direkt nach der Einlesung der DB die erste Platte in dem RAID-Verbund sehr stark ausgelastet, während die anderen Platten noch "Däumchen drehen". Nachdem sich die Daten dann verteilt haben, sind alle Platten ungefähr gleich stark ausgelastet.

4. Januar 2006 17:30

Hallo,

wir haben ebenfalls mit unser Navision Anwendung erhebliche Performance Probleme bei einer vergleichbaren Umgebung wie Guenther.

Wie wirkt sich eigentlich die Optimierung der Tabellen auf die Performance aus ????

Wir haben eine Postentabelle mit 18GB bei ca. 5 Mio. Einträgen und einen Optimierungsgrad von ca. 75%.

Da es im Tagesgeschäft nicht möglich ist eine Tabellenoptimierung durchzuführen, habe ich mich gerade 2 Tage mit AutoIT3 abgemüht um eine autom. Optimierung einiger Posten Tabellen nachts per batch durchführen zu können.

4. Januar 2006 19:49

bettenrid hat geschrieben:[...]
Wie wirkt sich eigentlich die Optimierung der Tabellen auf die Performance aus ????

Wir haben eine Postentabelle mit 18GB bei ca. 5 Mio. Einträgen und einen Optimierungsgrad von ca. 75%.
[...]
Gerade bei Performance-Problemen sollte man auf gar keinen Fall die Datenbank-Tabellen "optimieren", da danach die Daten nicht mehr quer durch die ganze Datenbank abgelegt sind (welche eventuell sogar über mehrere physikalische Festplatten verteilt ist), sondern direkt hintereinander abgespeichert werden.

Hier gilt also das Gleiche wie nach der Einlesung eines Backups:
Timo Lässer hat geschrieben:Es sei noch anzumerken, dass nach dem Einlesen des Backups in die neue (verteilte) DB diese noch "optimiert" ist, also alle Daten liegen direkt hintereinander.
Ergo heißt das: Je nachdem, wieviel Traffic täglich auf der Datenbank ist (Anzahl User, Schreib-/Lese-Transaktionen, ...) kann es zwischen einigen Stunden und einigen Tagen dauern, bis die Performance-Steigerung "fühlbar" wird, da erst durch die aktive Nutzung die Daten quer über alle Platten verteilt werden.
Somit ist also direkt nach der Einlesung der DB die erste Platte in dem RAID-Verbund sehr stark ausgelastet, während die anderen Platten noch "Däumchen drehen". Nachdem sich die Daten dann verteilt haben, sind alle Platten ungefähr gleich stark ausgelastet.

22. März 2006 12:39

Hallo,

auf wie viele Festplatten sollte man die DB denn verteilen bzw. ab wievielen Platten macht sich der Geschwindigkeitsvorteil bemerkbar ?

22. März 2006 13:30

Hallo West010!
Herzlich Willkommen hier im MBS-Support Forum.

Ab der ersten Aufsplittung, da die Daten Synchron auf zwei (oder mehr!) Platten geschrieben werden.
Wichtig ist, das es sich um getrennte Raid Arrays handelt!

Die Anzahl der Aufsplittungen hängt von der DB Größe ab, Microsoft gibt zwei GB pro DB-Part an!
Andere Mitglieder hier im Forum haben die DB-Part´s in 4GB eingeteilt!
Siehe auch:
Raid Level Navision
Maximale Anzahl von DB-Teilen?
Gruß Mikka