Dieses Blog durchsuchen

Montag, 6. Juli 2015

Procedure Statistiken

Eine sehr hilfreiche vom SQL Server zur Verfügung gestellte System-StoredProcedure heißt sys.dm_exec_procedure_stats
Mit ihr kann man sich in Windeseile einen Überblick über die Statistiken von Procedures verschaffen und einfach zeitintensive Prozeduren eruieren.
Die unten angeführte Query ermittelt die Top-10 der zeitaufwändigsten Durchführungen inklusive einiger wichtigen Attribute, wie die durchschnittliche Ausführungszeit und Anzahl der Durchführungen.
Eine Procedure, welche nicht nur zeitintensiv ist, sondern auch noch oft ausgeführt ist, sollte man sich auf jeden Fall genauer ansehen. Unter Umständen gibt es hier mit wenig Aufwand ein großes Optimierungspotential zu heben. 


-- Die Top 10 Abfragen mit dem längsten Zeitaufwand
SELECT TOP 10 
  d.object_id
 ,d.database_id
 ,OBJECT_NAME(object_id, database_id) 'procedure name'
 ,d.cached_time
 ,d.last_execution_time
 ,d.total_elapsed_time / 1000000 as GesamtzeitSek
 ,(d.total_elapsed_time/d.execution_count) / 1000000 AS DurchschzeitSek
 ,d.last_elapsed_time / 1000000 as LetzteDurchfZeitSek
 ,d.execution_count as AnzahlDurchfuehrungen
 ,d.sql_handle
FROM sys.dm_exec_procedure_stats AS d
ORDER BY [total_worker_time] DESC;

Keine Kommentare:

Kommentar veröffentlichen