88 votes

Dernières requêtes exécutées pour une base de données spécifique

Je sais comment obtenir les dernières requêtes exécutées en utilisant le SQL suivant dans SSMS -.

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

Mais je veux les trouver pour une base de données spécifique. Je ne veux pas utiliser SQL Profiler, si je n'y suis pas obligé. De plus, je ne pense pas que SQL Profiler me permettra de visualiser les requêtes qui ont déjà été exécutées sans que le profilage soit activé. J'ai besoin de faire cela à partir de SSMS.

100voto

tommy_o Points 3221

Cela fonctionne pour moi pour trouver des requêtes sur n'importe quelle base de données dans l'instance. Je suis sysadmin sur l'instance (vérifiez vos privilèges) :

SELECT deqs.last_execution_time AS [Time], dest.text AS [Query], dest.*
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.dbid = DB_ID('msdb')
ORDER BY deqs.last_execution_time DESC

C'est la même réponse que celle fournie par Aaron Bertrand, mais elle n'a pas été placée dans une réponse.

3voto

Jack Gajanan Points 619

Ce qui suit fonctionne parfaitement pour moi : j'espère que cela vous aidera

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X