récupérer le plus récemment exécuté la commande SQL (T-SQL)
-
20-09-2019 - |
Question
L'un de mes développeurs travaillant sur une installation de journalisation basée sur déclenchement dans SQL Server 2008 m'a demandé s'il y avait une commande pour récupérer les la dernière exécution commande SQL au sein de T-SQL. Je pensais qu'il y avait une procédure stockée système pour une telle fonction, mais il est possible que je pense à un autre produit à partir d'une dizaine d'années avant ... recherches en ligne nous ont donné aucun résultat.
Quelqu'un at-il des informations sur quelque chose du genre?
La solution
essayez-vous ceci:
SELECT
DMExQryStats.last_execution_time AS [Executed At],
DMExSQLTxt.text AS [Query]
FROM
sys.dm_exec_query_stats AS DMExQryStats
CROSS APPLY
sys.dm_exec_sql_text(DMExQryStats.sql_handle) AS DMExSQLTxt
ORDER BY
DMExQryStats.last_execution_time DESC
il a récemment exécuté les requêtes retours ainsi que la date et l'heure à laquelle ils ont été exécutés
Autres conseils
Eh bien, la procédure qui récupère le lot SQL les plus récentes, en toute sécurité se retourner:)
Sur une note plus sérieuse, vous pouvez regarder sys.dm_exec_query_stats
sys.dm_exec_procedure_stats
pour voir quand un plan a été exécuté la dernière fois, sur la base colonne last_execution_time
. Mais notez que la méthode n'est pas fiable parce qu'il ne tient pas compte des plans qui ont été expulsés du cache après l'exécution.
Qu'est-ce que "la plus récente" signifie dans le contexte d'une machine multi-core?
En outre, il ne signifie plus récemment commencé, ou plus récemment terminé?
Enfin, il devrait juste ouvrir SSMS et regarder Moniteur d'activité.