6
votes

récupérer la commande SQL la plus récemment exécutée (T-SQL)

Un de mes développeurs travaillant sur une installation de journalisation basée sur la gâchette de SQL Server 2008 m'a demandé s'il y avait une commande de récupération de la commande SQL la plus récemment exécutée dans 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 qu'un autre produit à partir d'une décennie antérieure ... Les recherches en ligne nous ont donné des résultats.

Quelqu'un a-t-il des informations sur quelque chose du genre?


0 commentaires

3 Réponses :


1
votes

Qu'est-ce que "la plus récente" signifie dans le contexte d'une machine multi-noyau?

En outre, veut-il dire le plus récemment commencé, ou le plus récemment terminé?

Enfin, il devrait simplement ouvrir SSMS et regarder le moniteur d'activité.


2 commentaires

Dans le contexte, nous sommes après ce serait "le plus récemment commencé"


Le SSMS sera sûrement utile pour nous permettre d'examiner les commandes, mais de savoir ce que nous recherchons réellement est une solution programmatique, d'où la quête spécifique d'une procédure stockée par système.



19
votes

Bien sûr, essayez ceci: XXX

Il retournera les requêtes exécutées récemment avec la date et l'heure à laquelle elles ont été exécutées


2 commentaires

Je ne le savais pas. C'est mignon!


+1 Quel beau joyau! Exactement ce dont j'avais besoin pour un déclencheur de débogage sur certaines de mes tables



4
votes

Eh bien, la procédure qui récupère le lot SQL le plus courant peut se revenir en toute sécurité :)

Sur une note sérieuse, vous pouvez regarder sys.dm_exec_query_stats et sys.dm_exec_procedure_stats pour voir quand un plan était exécuté la dernière fois, basé sur la colonne last_execution_time . Mais notez que la méthode n'est pas fiable car elle ne tient pas compte des plans qui ont été expulsés du cache après exécution.


0 commentaires