Source: Querying SQL Records executed by SQL Server
Sometimes, you need to know what SQL Server executes, and you can use the following method:
SELECT TOP 1000
--Creation time
Qs.creation_time,
--Query statements
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,
--Execute text
St.text,
--Execution plan
Qs.total_worker_time,
Qs.last_worker_time,
Qs.max_worker_time,
Qs.min_worker_time
From
Sys.dm_exec_query_stats QS
--Key words
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
SELECT TOP 1000
--Creation time
Qs.creation_time,
--Execute text
St.text
From
Sys.dm_exec_query_stats QS
--Key words
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 not as '%select * from T_locationinfo WHERE strcliplogicid in (% '
ORDER by
Qs.creation_time DESC
Querying SQL records that SQL Server has executed