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
set statistics time off
In diesem Fall steht die genaue Ausführungszeit im Fenster "Meldungen".
Grüße Marco
--
Ich spreche Spaghetticode - fließend.