SQL Server: Performance-Optimierung

SQL Server Profiler

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Hier gibt's eine Einführung in die Verwendung des SQL Server Profilers.
08:59

Transkript

Und damit komme ich zu einem sehr mächtigen Werkzeug, was der SQL Server Administratoren und Entwicklern zur VErfügung stellt, nämlich den SQL Server Profiler. Mit dem Profiler kann ich auf relativ einfache Art und Weise jegliche Art von Statement, die ihm geschickt werden, mir anzeigen und entsprechend auch analysieren an der Stelle. Ich habe in Kapitel 1 schon mal darüber gesprochen, da es darum geht, wenn man beispielsweise einen OR Mapper oder ähnliches benutzt, dass man wirklich schaut, was wird gegen den Server geschickt. Und da habe ich halt mit dem Profiler relativ einfaches Spiel. Ich kann sehen, was wirklich zur Ausführung kommt und kann sehen, wie lange welches Statement dauert. Ich kann sehen, wie viel IO-Tätigkeit jedes Statement verursacht und so weiter und so fort. Der Profiler an sich ist ein relativ komplexes Werkzeug. Da könnte man wirklich Stunden darüber reden. Hier kurz in der Zusammenfassung, damit Sie damit loslaufen können, falls Sie dieses Tool selber noch nicht für sich entdeckt haben: Ich starte das über das SQL Server Management Studio. Ich brauche die notwendigen Rechte natürlich, aber ich kann den SQL Profiler aus dem Tools-Menü starten. und kann dann definieren, welche Filter ich haben möchte, welche Werte ich überhaupt sehen möchte. Also die Liste die angezeigt wird der einzelnen statistischen Werte ist nur eine kleine Schnittmenge aus dem, was es wirklich an Funktionalität gibt. Ich glaube ich wechsle einfach mal rüber ins Management Studio und zeige Ihnen mal live, wie der Profiler in Action aussieht. So und da bin ich auch schon im SQL Server Management Studio. Ich kann den Profiler hier starten. Dauert einen kleinen Moment, Anmeldemaske. Mit welcher Instanz ich arbeiten möchte, es muss nicht die lokale sein. Es kann theoretisch auch im Netzwerk irgendeine SQL Server Instanz sein, auf der ich entsprechende Rechte habe. Und dann bekomme ich als erstes dieses Fenster hier zu sehen, Trace Properties. Prinzipiell kann ich mit dem SQL Server Profiler auch Daten aufzeichnen. Das bedeutet, das was ich mir live angucke kann ich, wenn ich möchte, in eine Datei oder in eine Tabelle speichern. Ganz interessant ist, ich kann Start- und Stopp-Zeiten festlegen. Das bedeutet, wenn ich weiß, ich möchte mal sehen, was passiert eigentlich nachts zwischen drei und fünf, irgendwie ist die Verarbeitung langsamer, als ich mir das so wünsche oder vorstelle, dann kann ich hingehen und hier die entsprechenden Start- und Ende-Zeitpunkte einsetzen und das Programm einfach laufen lassen. Dann kann ich hier ein Template auswählen. Da habe ich eine ganze Menge Möglichkeiten. Der Standard an sich ist schon mal nicht wirklich schlecht, um sich eine grobe Übersicht zu verschaffen. Und wenn ich möchte, kann ich mir auch eigene Templates definieren an der Stelle, aber ich bleibe hier erstmal bei dem Standard und wechsle einmal hier auf den anderen Karteireiter. "Events Selection", da kann ich hingehen, und definieren, was ich denn in der Tat wirklich sehen möchte. Sie sehen hier, das sind die Events, die vorgeschlagen werden. Das sind die entsprechenden Eigenschaften auf der x-Achse, die ich mir anzeigen lassen kann. Und wenn ich es wirklich im Detail wissen möchte, dann kann ich hier diese beiden Checkboxen setzen und dann werden alle Events und alle Columns angezeigt. Sie sehen, wenn ich hier runterscrolle, da sind massig Informationen, die ich mitschreiben kann. Es ist natürlich so, je mehr ich mitschreibe, desto mehr blockiere ich den SQL Server natürlich auch mit dieser Aufgabe. Das muss mir durchaus bewusst sein. Insofern, die Kunst ist es natürlich, nicht einfach alles mitzuschreiben und dann mit der Datenmenge, die dadurch entsteht, sowieso nicht recht was anfangen zu können, sondern wirklich gezielt auf das zu gehen, was ich wirklich benötige an der Stelle. Deswegen nehme ich hier die Häkchen nochmal weg. Der Standard, der hier so eingestellt ist, der sagt mir im Wesentlichen, wenn ich eine Abfrage habe, was denn die Abfrage selber ist, welche Application beteiligt ist, der Username, die CPU-Zeit. die Anzahl der Read- und Write-Operationen, die Dauer der Ausführung, die Prozess-ID und so weiter und so fort. Also habe ich damit schon mal so eine grobe Übersicht, was wirklich möglicherweise relativ aufwendig ist, was mein Server ausführen muss. Dann kann ich hingehen und einen Filter oder mehrere Filter definieren. Ich kann zum Beispiel hingehen und sagen, ich möchte möglicherweise nur von bestimmten Benutzern aufzeichnen, ich kann also sagen, Login- oder NTUserName festlegen. Ich kann sagen, es sollen mindestens so und so lange, oder so und so lange Reads sollen es sein, oder so und so große Anzahl von Reads sollen es sein. Ich kann hingehen und die CPU entsprechend einführen. Das heißt ich kann sagen, gib mir einfach mal die, die wirklich relativ lange rechnen. Dann kann ich mir erstmal eine Baseline holen und gucken, was denn so normal mitgeschrieben wird. Und wenn ich sage, 1000 ist für mich viel, kann ich das entsprechend hier als Filter reinbringen. Das ist eine ganz nette Sache. Sie müssen immer beim Profiler damit rechnen, dass Sie in kürzester Zeit extrem viele Daten sammeln. Und das versucht man natürlich einzuschränken, weil Sie letztendlich sonst kaum was finden werden. Hier kann ich relativ großzügig sein, weil auf meinem Server relativ wenig los ist. Insofern entscheide ich mich jetzt hier zu Demozwecken kein Filter anzulegen. Und klicke einfach mal auf "Run". Und Sie sehen, es passiert momentan gar nichts auf dem Server. Ich habe die Möglichkeit, einmal jetzt hier rüberzuwechseln in mein Management Studio. Ich hatte das in Kapitel 1 schon gezeigt, "Hallo Welt!". Wenn ich das ausführe, dann geht natürlich der Profiler hin und schreibt das in der Tat mit, weil er letztendlich nicht auf gültige Statements angewiesen ist, sondern gern auf überhaupt einen Server geschickt wird. Und Sie sehen, es sind hier immer so zwei Pärchen, die auftreten, "BatchStarting" und "BatchCompleted". Das heißt, damit hat er angefangen und wenn er fertig ist, weiß er, wie viel CPU, wie viele Reads, wie viele Writes er entsprechend benötigt und wie lange das Gesamte überhaupt ausgeführt wird an der Stelle. Jetzt kann ich ihm aber mal ein vernünftiges Statement geben Zum Beispiel könnte ich hingehen und sagen, "select top 100 * from", dann kann ich mir eine Tabelle aussuchen, zum Beispiel diesen Heap, "where ID < 100". Wenn ich das Statement ausführe, dann krieg ich die Ergebnismenge. und der Profiler zeigt mir das entsprechend dann an. Ich sehe, wieviel Rechenzeit ich damit verbraten habe, also 529 in dem Fall; wie viele Reads das bedeutet, 15.800 knapp. Ich kann das Statement nochmal ausführen und dann nochmals hochwechseln. Sie sehen, die Zahl muss auch nicht unbedingt identisch sein. Und das sind letztendlich die Maßzahlen, mit denen Sie sehen können, welche Statements gegen den Server geschickt werden, wie oft die Statements auftreten und auch wie viele Ressourcen Sie damit verbrauchen an der Stelle. Wenn ich möchte, kann ich den Trace speichern Ich könnte zum Beispiel sagen "Save As" und Sie sehen, hier habe ich die Möglichkeit, ein Tracefile zu verwenden, ich kann das Ganze als XML ablegen. Das wird gleich für den Tuning Advisor nochmal interessant, weil das kann eine Datenquelle dann sein. die der Tuning Advisor dann analysiert an der Stelle. Wenn ich ein bisschen mehr Klarheit brauche, kann ich hier den Trace über den Radiergummi da oben entsprechend leeren. Ich kann das Statement nochmal ausführen, damit ich ein bisschen was zum Zeigen wieder habe. Ich kann pausieren, ich kann stoppen. Ich kann es, wenn ich es pausiert habe, wieder entsprechend starten und so weiter und so fort. Und was ganz interessant ist, ich kann auch mit Strg +"F" zum Beispiel suchen. Wenn ich genau weiß, es kommt ein gewisser Name drin vor, dann kann ich hingehen und sagen zum Beispiel "Produkt" suche ich. Ich möchte in allen Spalten suchen. Da kann ich mich da durchhangeln. Das heißt, ich muss nicht später hingehen und die einzelnen Zeilen von Hand durchsuchen. sondern ich kann schlicht und ergreifend mich der Suche bemächtigen. Wie gesagt, ein sehr mächtiges Tool. Was Sie nicht machen sollten, das ist nicht ganz optimal, den Profiler einfach mal rein prophylaktisch immer mitlaufen lassen. Das kostet den SQL Server natürlich Ressourcen letztendlich und der Profiler selber ist natürlich ab einer gewissen Größe, also Anzahl der Zeilen, hier in dieser Liste natürlich auch ein Schwergewicht. Das heißt, das belastet natürlich das Netz zwischen Server und Client und den Client natürlich selber. Es gibt da in der Tat bessere Möglichkeiten, wenn ich eine Langzeitstudie machen möchte. Das Ganze basiert hier ohnehin auf Extended Events und die kann ich quasi auch in Textdateien wenn ich möchte entsprechend zusammenfassen. und muss damit keine Oberfläche laufen lassen. Nichtsdestotrotz, meiner Meinung nach eins der wirklich besten Tools am SQL Server das man auch definitiv kennen sollte und auch einsetzen, wenn Sie einfach das Problem haben, dass die Dinge zu langsam sind. Man bekommt eine sehr klare Sicht von dem, was der Server ausführt und nicht, was man meint, was die Anwendung an Statements möglicherweise ausführt, sondern eine ganz klare, ungefilterte Sicht, was der Server zu tun hat.

SQL Server: Performance-Optimierung

Lernen Sie den Umgang mit Indizis und Tools, um die Leistungsfähigkiet Ihrer SQL Server Datenbank effektiv zu erhöhen.

3 Std. 20 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:04.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!