SQL-Server-Profiler & Tuning Advisor

Christoph1972

Benutzer
Beiträge
18
Hallo zusammen,

eine MS-SQL-Server Datenbank von mir hakelt in letzter Zeit gelegentlich. Die Datenbank habe ich mit dem SQL-Server-Profiler überwacht und das Trace-File mit dem Tuning Advisor ausgewertet. Der Advisor schlägt einige Optimierungen vor. Bevor ich diese anwende, wollte ich die Änderungen auf meinem Testsystem ausprobieren. Dazu habe ich ein Backup von der Produktivdatenbank auf mein Testsystem gebracht und dort die Überwachung und den Tuning Advisor nochmals ausgeführt. Nun bekomme ich allerdings keine Vorschläge mehr. Das Produktivsystem läuft mit einer HDD Festplatte, das Testsystem mit SSD.

Wird der Tuning Advisor erst aktiv, wenn die Abfragezeiten zu lange dauern, oder warum bekomme ich jetzt ein anderes Ergebnis?

Wie sind eure Erfahrungen mit den Recommendations des Advisors, kann man die blind ausführen, oder lieber testen? Ich habe damit bisher noch keine Erfahrung, war noch nicht nötig.

Herzliche Grüße
Christoph
 
Werbung:
Mit SQL-Server kenne ich mich nicht aus, in der Regel sammelt eine moderne Datenbank aber zur Laufzeit Informationen (darum hat Deine frisch eingespielte auch noch keine) über die Abfragen und kann daraus Schlüsse ziehen bzw. Optimierungstipps geben. Blind vertrauen darfst Du den Tipps nie, ich habe schon so manche solcher Optimierungen gesehen die ziemlich "in die Hose" gingen.
 
in der Regel sammelt eine moderne Datenbank aber zur Laufzeit Informationen (darum hat Deine frisch eingespielte auch noch keine) über die Abfragen und kann daraus Schlüsse ziehen bzw. Optimierungstipps geben.

Ich habe gedacht, dass die Auswertung der Queries -als der Profiler lief- ausreichen würde. Aber gut möglich, dass die Statistiken auch mit ausgewertet werden und wenn dann noch eine andere Festplatte mit ins Spiel kommt gibt es halt ein völlig anderes Ergebnis.


Blind vertrauen darfst Du den Tipps nie, ich habe schon so manche solcher Optimierungen gesehen die ziemlich "in die Hose" gingen.

Eine Verschlimmbesserung würde mir noch fehlen. :) Freitag wird ein Backup gemacht und dann werde ich es einfach am Prodsystem testen.

Wie könnte man denn erklären, dass ein und das selbe Query mal blitzschnell geht und dann auf mal 8 Sekunden benötigt? Der Systemmonitor zeigt während der Abfragen keine Auffälligkeiten. Ich würde jetzt erwarten, dass die Performance durchgängig schlecht ist, wenn die Struktur der Datenbank nicht optimal ist und andere Ereignisse sollte man mit dem Systemmonitor sehen. Oder liege ich da völlig falsch?


Vielen Dank schon mal für die nette Unterstützung!
Christoph
 
Ich habe gedacht, dass die Auswertung der Queries -als der Profiler lief- ausreichen würde. Aber gut möglich, dass die Statistiken auch mit ausgewertet werden und wenn dann noch eine andere Festplatte mit ins Spiel kommt gibt es halt ein völlig anderes Ergebnis.

Ausführungspläne können sich ändern. Statistiken (aus denen z.B. die Größe der Ergebnissmenge errechnet wird) können falsch sein und zu ungünstigen Plänen führen. Rotierende Festplatten haben völlig anderes Verhalten bei random-io im Vergleich zu SSD's.

Eine Verschlimmbesserung würde mir noch fehlen. :) Freitag wird ein Backup gemacht und dann werde ich es einfach am Prodsystem testen.

Performance-Analysen an Testsystemenen sind vergleichsweise sinnfrei.

Wie könnte man denn erklären, dass ein und das selbe Query mal blitzschnell geht und dann auf mal 8 Sekunden benötigt? Der Systemmonitor zeigt während der Abfragen keine Auffälligkeiten. Ich würde jetzt erwarten, dass die Performance durchgängig schlecht ist, wenn die Struktur der Datenbank nicht optimal ist und andere Ereignisse sollte man mit dem Systemmonitor sehen. Oder liege ich da völlig falsch?

Ich kenne jetzt M$SQL ned im Detail, aber:

  • andere Abfragen, die gleichzeitig laufen und sich gegenseitig blockieren (Locks)
  • falsche Statistiken -> scheiß Pläne
  • Backgroud-Arbeiten der Datenbank (wie z.B. Autovacuum oder Checkpoints bei PostgreSQL )
  • fehlender RAM, der das System in den SWAP drückt
 
Beim Übertragen der Datenbank auf ein anderes System wird ja nun auch vieles, ich nenne es mal, "reorganisiert". Indexe werden neu erstellt, die Datenbank-Datei dürfte keine große Log mehr besitzen, etc. Vielleicht beziehen sich eine Performance-Anmerkungen auf solche Dinge.
 
Werbung:
Vielen Dank für eure Unterstützung! Ich habe die Datenbank heute mittels Tuning Advisor neu indiziert. Danach ließ sich das mit der kritischen Abfrage nicht mehr reproduzieren. Gut möglich das jetzt wieder alles gut läuft. :)


Schöne Feiertage wünsche ich euch!
 
Zurück
Oben