Wie kann ich die teuersten Abfragen protokollieren und finden?
Den activity monitor in sql2k8 erlaubt es uns, die meisten teuren Abfragen. Ok, das ist cool, aber gibt es eine Möglichkeit, ich kann mich einloggen, diese info oder erhalten diese info per query analyser? Ich weiß nicht wirklich wollen, um die Sql-Management-Konsole öffnen und mich an Sie den activity monitor dashboard.
Ich möchte, um herauszufinden, welche Abfragen sind schlecht geschrieben/schema ist schlecht konzipiert, usw.
Dank Haufen für jede Hilfe!!!
InformationsquelleAutor der Frage Pure.Krome | 2008-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie SQL Server Profiler (auf der tools Menü in SSMS) zum erstellen einer Ablaufverfolgung, die Protokolle dieser Veranstaltungen:
Können Sie die standard-trace-Vorlage und Pflaume. Sie wollte nicht angeben, ob dies für eine bestimmte Datenbank oder den gesamten server, wenn es für bestimmte Db ' s, gehören die DatabaseID Spalte und setzen Sie einen filter, um die DB (
SELECT DB_ID('dbname')
). Stellen Sie sicher, dass die logical Reads data-Spalte enthalten ist für jede Veranstaltung. Setzen Sie die trace-Protokollierung in eine Datei. Wenn Sie verlassen diese Spur, um unbeaufsichtigt im hintergrund, ist es eine gute Idee, um eine maximale trace-Datei Größe sagen, 500MB oder 1GB wenn du viel Platz (es hängt alles davon ab, wie viel Aktivität es auf dem server, so haben Sie zu saugen und zu sehen).Kurz starten Sie die Ablaufverfolgung, und dann halten Sie es. Gehe zu File->Export->Skript für ablaufverfolgungsdefinition erstellen und wählen Sie Ihre DB-version und in einer Datei speichern. Sie haben nun ein sql-Skript erstellt eine Spur, die hat viel weniger Aufwand als der Betrieb durch den profiler GUI. Wenn Sie dieses Skript ausführen, wird es die Ausgabe der Trace-ID (in der Regel
@ID=2
); beachten Sie diese nach unten.Sobald Sie eine trace-Datei (.trc) (entweder die Ablaufverfolgung beendet durch erreichen der max Datei Größe oder Sie beendet die laufende Verfolgung mit
EXEC sp_trace_setstatus mit @ID, 0
EXEC sp_trace_setstatus mit @ID, 2
Laden Sie die Ablaufverfolgung in profiler, oder verwenden Sie ClearTrace (sehr praktisch), oder laden Sie Sie in eine Tabelle etwa so:
Dann können Sie eine Abfrage ausführen, um die Daten aggregieren, wie zum Beispiel dieses:
Sobald Sie festgestellt haben, die kostspielige Abfragen, können Sie erzeugen und prüfen der tatsächlichen Ausführung der Pläne.
InformationsquelleAutor der Antwort Mitch Wheat
Das Folgende Skript gibt Ihnen das Ergebnis.
InformationsquelleAutor der Antwort gngolakia
Hatte ich noch nie gehört, dieses tool vor, aber Microsoft bietet eine Reihe von berichten, die einen fantastischen job geben wir Ihnen genau dieses - einschließlich der langsamsten Abfragen. Schauen Sie sich Ihre Performance Dashboard Reports.
Nicht sicher, ob Sie SQL 2008-kompatibel, aber lohnt sich.
InformationsquelleAutor der Antwort Tom Lianza
Würde der SQL Server Profiler tun, was Sie brauchen? Ich habe nicht 2008, aber ich weiß nicht, ob das tool ist noch drin, aber wenn es ist, ich glaube, Sie können einen trace-Protokoll Abfragen, die bestimmte Kriterien erfüllen (wie etwa diejenigen, die ausführen und Laufwerk CPU, die sich oberhalb einer bestimmten Schwelle).
Wir haben diese auf unser Projekt und es hat einen ziemlich guten job, um uns zu helfen, beheben schlecht ausführen von Abfragen (wenn nicht lassen Sie es auf die volle Zeit, verlassen Sie sich auf die Allgemeine Windows-Leistungsindikatoren für Leistung Gesundheit-tracking).
InformationsquelleAutor der Antwort cfeduke
Gibt es ein neues tool, Performance Studio in SQL Server 2008 baut auf der Dynamischen Management-Sichten automatisch gepflegt durch den server, das gibt einen überblick über die server-Leistung. Es lohnt sich.
InformationsquelleAutor der Antwort jaraics
(DELL)Quest SQL Optimizer for SQL Server 9.0 führt, Finden SQL-Modul, auf denen die Nutzer suchen die meisten ressourcenintensiven SQL in Ihrem SQL Server.
https://support.quest.com/softwaredownloads.aspx?pr=268445262
InformationsquelleAutor der Antwort user2485339