misterunknown: Antwortzeiten eines DBMS messen

Beitrag lesen

Moin,

die Frage ist, ob du es im Nachhinein machen willst, oder ob du es vorher weißt.

Im Nachhinein:

sys.dm_exec_query_stats -> Metadaten über die Abfragen
sys.dm_exec_sql_text(sql_handle) -> SQL-Statements

Beispiel-Abfrage:

SELECT  
    s1.sql_handle,  
    (SELECT TOP 1 SUBSTRING(s2.text,statement_start_offset / 2+1 ,  
      ( (CASE WHEN statement_end_offset = -1  
         THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2)  
         ELSE statement_end_offset END)  - statement_start_offset) / 2+1))  AS sql_statement,  
    total_elapsed_time  
FROM sys.dm_exec_query_stats AS s1  
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2  
WHERE s2.objectid is null  
ORDER BY s1.sql_handle, s1.statement_start_offset, s1.statement_end_offset;

In der Tabelle dm_exec_query_stats stehen noch viele weitere Daten, die dich eventuell interessieren.

Wenn du vorher weißt, dass du die genaue Zeit messen willst, kannst du es auch einfach so machen:

set statistics time on  
-- your query  
set statistics time off

In diesem Fall steht die genaue Ausführungszeit im Fenster "Meldungen".

Grüße Marco

--
Ich spreche Spaghetticode - fließend.