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?

Était-ce utile?

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é.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top