Aus dem Kurs: SQL Server 2019 Grundkurs: Administration

SQL Server Trace

Wenn der SQL Server Profiler als deprecated gekennzeichnet ist, was gibt es für Alternativen? Eine Alternative ist, dass ich einen Trace ausführe. Letztendlich nichts anderes, nur das nicht die Anwendung, der SQL Server Profiler verwendet wird, um so eine Trace-Datei, also das Skript zu erzeugen, gibt es auch hier kleine Hilfsmöglichkeiten. Ich verbinde mich mal mit dem Profiler. Ich würde also hier Trace_2 mal angeben. "In Datei speichern", Dateinamen, würde meine Vorlage wählen hier im Bereich Tuning wieder Einstellung vordefinieren, Ereignisse habe ich. So, jetzt gehe ich hin und sage, ich starte das Ganze, dann Pause. Datei und jetzt kann ich hier verschiedene Optionen wählen, Exportieren > Skript für Ablaufverfolgungsdefinition erstellen > SQL Server 2005 -- 2019, "Trace_Template". So, genau. Jetzt schließe ich das Ganze, beende das und schließe das, gehe zu dem Trace bzw. Trace_Template, öffne das und sehe, dass hier jetzt das Ganze über Prozeduren geschieht, also @maxfilesize ist definiert, TraceID. Hier muss ich natürlich aufpassen: InsertFileNameHere, das heißt, hier muss ich jetzt gucken, dass ich Pfad und Dateiname angebe. Hatte vorhin einen freigegebenen Ordner bzw. der Dateiname, dass ich den verwenden, aber ich kann ja ruhig mal trace_2.trc. So, @maxfilesize und jetzt kann ich gucken. Das sind jetzt meine Spalten, also, ich habe das Event, das ist ja immer dasselbe, bzw. habe ich mehrere Events, deswegen steht die 10 hier immer für ein Event und dann die jeweiligen Spalten für das jeweilige Event. Hier unten habe ich dann "trace status to start", also im Grunde genommen die Prozedur "sp_trace_setstatus TraceID" dadurch wird der Trace gestartet, also mit 0, 1 oder 2 kann ich sagen Starten, Pausieren und entsprechend Anhalten. Und wenn ich das Skript jetzt ausführe, dann sehe ich, dass er mir aktuell eine TraceID 2 zurückgibt. Woran liegt das? Das ist also auch ganz einfach. Ich schaue mal im SQL Server in den Standard-Verzeichnissen nach unter Programme > SQL Server und die Instanz. Hier gibt es dann das Log-Verzeichnis und in dem Log-Verzeichnis sehe ich, dass es hier zum Profiler ein sogenannten Standard-Trace gibt, der also immer mitläuft, und dieser Standard-Trace verfügt über die TraceID 1, sodass mein Trace, den ich jetzt hier benutzerdefiniert ausführe, die TraceID 2 hat und mir dann klar sein muss: Wenn ich das Ganze natürlich beenden will, geschieht das ja an sich über diese Zeile und hier wird die TraceID übergeben, an sich über eine Variable, aber ich weiß ja, dass es jetzt die 2 ist, und je nachdem die 1 startet, 0 und 2 sind dann entsprechende Parameter für Stoppen und Beenden. So, wurde erfolgreich ausgeführt. So, jetzt schaue ich mal nach in meiner Standard-Verzeichnisstruktur unter Dokumente, dort habe ich jetzt Trace_2 als Datei und somit bin ich natürlich in der Lage, das Ganze auch über ein Skript zu machen und zu steuern und habe hier einmal die Möglichkeit, über ein Profiler oder eben dann so ein Trace auszuführen und sozusagen das vorzubereiten und dann immer per Skript sagen, ich möchte jetzt eine Aufzeichnung machen und später lade ich mir das dann ganz einfach und schaue entsprechend in die jeweiligen Inhalte hinein.

Inhalt