Frage

Wir sind mit sporadischen, zufälligen Abfrage-timeouts auf unserem SQL Server 2005-cluster.Ich besitze ein paar apps, die es verwenden, so bin ich helfen bei der Untersuchung.Wenn man sich die % CPU-Zeit in regelmäßigen ol' Perfmon, können Sie sicherlich finden Sie pegging aus.Jedoch, SQL activity monitor nur gibt die kumulative CPU-und IO-Zeit ein Prozess, nicht das, was es ist, dann rechts, oder über einen bestimmten Zeitraum.Vielleicht könnte ich mit dem profiler und eine Ablaufverfolgung ausführen, aber in diesem cluster sehr stark verwendet, und ich fürchte, ich wäre auf der Suche nach einer Nadel im Heuhaufen.Bin ich auf dem Holzweg?

Hat jemand ein paar gute Methoden für das aufspüren von teuren Abfragen/Prozesse in diesem Umfeld?

War es hilfreich?

Lösung

Dies wird Ihnen die top 50 Aussagen von durchschnittlichen CPU-Zeit, überprüfen hier für andere Skripte: http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql2005/default.mspx?mfr=true

SELECT TOP 50
        qs.total_worker_time/qs.execution_count as [Avg CPU Time],
        SUBSTRING(qt.text,qs.statement_start_offset/2, 
            (case when qs.statement_end_offset = -1 
            then len(convert(nvarchar(max), qt.text)) * 2 
            else qs.statement_end_offset end -qs.statement_start_offset)/2) 
        as query_text,
        qt.dbid, dbname=db_name(qt.dbid),
        qt.objectid 
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY 
        [Avg CPU Time] DESC

Andere Tipps

Ich habe das Performance-Dashboard-Berichte sehr hilfreich.Sie sind ein Satz von benutzerdefinierten RS-Berichte von Microsoft geliefert.Sie müssen nur zu starten Sie das Installationsprogramm auf Ihren client-PC, und führen Sie dann das setup.sql auf dem SQL Server-Instanz.

Nach, dass, klicken Sie rechts auf eine Datenbank (egal welches) in SSMS und goto-Berichte> Benutzerdefinierte Berichte.Navigieren Sie zu und wählen Sie die performance_dashboard_main.rdl befindet sich im Ordner \Program Files\Microsoft SQL Server\90 ools\PerformanceDashboard Ordner standardmäßig.Sie müssen diese Einstellung nur einmal.Nach dem ersten mal, es wird zeigen, bis in der Liste der Berichte.

Das Haupt-dashboard-Ansicht zeigt die CPU-Auslastung im Laufe der Zeit, unter anderem.Können Sie aktualisieren Sie es gelegentlich.Wenn Sie sehen eine spike, klicken Sie einfach auf die Balken in der Grafik, um die Daten im detail dahinter.

Wir verwenden Quest Spotlight Produkt.Natürlich, es ist eine Investition in Zeit und Geld, so könnte es nicht helfen Sie heraus in der kurzfristigen, aber wenn Sie eine große SQL-Umgebung, es ist ziemlich nützlich.

Wie sagt Yaakov, run profiler für ein paar Minuten unter typischer Last-und speichern Sie die Ergebnisse in eine Tabelle, die können Sie Abfragen ausführen, die Ergebnisse macht es viel einfacher zu erkennen resource hogging Abfragen.

Profiler kann scheinen, wie eine "Nadel im Heuhaufen" - Ansatz, aber es kann sich etwas nützliches.Versuchen Sie es für ein paar Minuten, während der die Datenbanken sind unter typischer Last-und sehen, wenn irgendwelche Fragen auffallen nehmen zu viel Zeit oder Ressourcen in Beschlag, die in irgendeiner Weise.Während einer situation wie dieser konnte ein Allgemeines Problem, könnte es auch sein, in Bezug auf etwas bestimmtes Thema mit einer oder zwei Seiten, die Durcheinander zu bringen reicht unter Umständen dazu führen, dass sehr schlechte performance across the board.

Run Profiler und filter für Abfragen, die mehr als eine bestimmte Anzahl von reads.Für die Anwendung an dem ich gearbeitet habe, alle nicht-Berichterstattung Abfrage dauerte mehr als 5000 mal gelesen verdient einen zweiten Blick.Ihre app kann eine andere Schwelle, aber die Idee ist die gleiche.

Dieses Dienstprogramm von Erland Sommarskog ist sehr nützlich.

Es ist eine gespeicherte Prozedur, die Sie hinzufügen, um Ihre Datenbank.Führen Sie es, Wann immer Sie wollen, um zu sehen, welche Abfragen aktiv sind und Holen Sie sich ein gutes Bild von sperren, Blöcke, etc.Ich benutze es regelmäßig, wenn die Dinge scheinen verklebt,.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top