TSQL: get últimas consultas corridas

¿Hay alguna manera de get el text SQL para las últimas consultas?

Estoy usando Microsoft SQL Server 2005

Sí, eche un vistazo, esto le dará las 50 sentencias SQL ejecutadas más recientes

sql 2005 y solo arriba

SELECT TOP 50 * FROM(SELECT COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName, execution_count,s2.objectid, (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, last_execution_time FROM sys.dm_exec_query_stats AS s1 CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 ) x WHERE sql_statement NOT like 'SELECT TOP 50 * FROM(SELECT %' --and OBJECTPROPERTYEX(x.objectid,'IsProcedure') = 1 ORDER BY last_execution_time DESC 

Si usa SQL Server 2005+:

 SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query] FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest ORDER BY deqs.last_execution_time DESC 

¡Un gran consejo de SQLAuthority !

La única forma que conozco es tener el SQL Server Profiler ejecutándose. Desafortunadamente, esto debe iniciarse antes de que se ejecuten las consultas, por lo que si espera detectar algo que sucede de manera "ad hoc", no será adecuado. Si intenta hacer un seguimiento de lo que está haciendo un código y desea capturar las consultas que ejecuta, debería funcionar.

    Intereting Posts