天天看點

查詢SQLSERVER執行過的SQL記錄

有的時候,需要知道SQLSERVER執行了什麼語句,可以用下面的方法:

SELECT TOP 1000 

--建立時間 

QS.creation_time, 

--查詢語句 

SUBSTRING(ST.text,(QS.statement_start_offset/2)+1, 

((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) 

ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1 

) AS statement_text, 

--執行文本 

ST.text, 

--執行計劃 

QS.total_worker_time, 

QS.last_worker_time, 

QS.max_worker_time, 

QS.min_worker_time 

FROM 

sys.dm_exec_query_stats QS 

--關鍵字 

CROSS APPLY 

sys.dm_exec_sql_text(QS.sql_handle) ST 

WHERE 

QS.creation_time BETWEEN '2012-12-03 09:00:00' AND '2012-12-03 11:00:00' 

--AND ST.text LIKE '%%' 

ORDER BY 

QS.creation_time DESC

ST.text

AND ST.text NOT LIKE '%SELECT * FROM T_LOCATIONINFO WHERE STRCLIPLOGICID in(%'