Mittendrin.

Zurück

Flurfunk der eXperts.

Hier erfahren Sie mehr über eXperts, Technologien und das wahre Leben in der SDX.

SQL Server Execution Plan zur Laufzeit ermitteln

19.11.201011:00 Uhr , Viktor Ewert

Es kann durchaus vorkommen, dass man nicht weiß welchen Execution-Plan der SQL-Server für ein Query nutzt. Bedingt durch Veränderung des Datenvolumens etc. kann es dann auch vorkommen, dass eine Query von einem Tag auf den nächsten extrem lange läuft. Möchte man den tatsächlichen Execution-Plan zur Laufzeit ermitteln, so hat man folgende Möglichkeit.

Die folgende Query filtert die offenen Sessions von meinem Beispielrechner “MyHost”. An dieser Stelle kann natürlich auch über andere Spalten der Tabelle sys.dm_exec_session gefiltert werden, z.B. login_name

   1: select session_id,request_id,plan_handle 

   2: from sys.dm_exec_requests 

   3: where session_id in ( 

   4:     select session_id from sys.dm_exec_sessions where host_name = 'MyHostname' 

   5: )

Als Ergebnis wird die Spalte plan_handle zurückgegeben. Diesen Wert verwendet man nun für die Selektion des Execution-Plans.

   1: select * 

   2: from sys.dm_exec_query_plan(<plan_handle>)

Im ResultSet wird jetzt die Spalte query_plan angezeigt. Dieses XML öffnet man, speichert es unter der Dateiendung *.sqlplan ab, und öffnet es im Management-Studio. Und schon hat man einen Execution-Plan.

0 Kommentare
Dein Kommentar wartet auf Freischaltung.

Artikel kommentieren

Zurück

Tag Cloud


Kontakt aufnehmen


Anrufen

Gerne beantworten wir Ihre Fragen in einem persönlichen Gespräch!


Kontakt aufnehmen

Schreiben Sie uns eine E-Mail mit Ihren Fragen und Kommentaren!