sys.dm_exec_procedure_stats contient les informations sur les fonctions d'exécution, les contraintes et les procédures, etc. Mais la durée de vie de la ligne a une limite. Dès que le plan d'exécution est retiré du cache, l'entrée disparaît.
Use [yourDatabaseName]
GO
SELECT
SCHEMA_NAME(sysobject.schema_id),
OBJECT_NAME(stats.object_id),
stats.last_execution_time
FROM
sys.dm_exec_procedure_stats stats
INNER JOIN sys.objects sysobject ON sysobject.object_id = stats.object_id
WHERE
sysobject.type = 'P'
ORDER BY
stats.last_execution_time DESC
Vous obtiendrez ainsi la liste des procédures récemment exécutées.
Si vous voulez vérifier si une procédure stockée particulière a été exécutée récemment
SELECT
SCHEMA_NAME(sysobject.schema_id),
OBJECT_NAME(stats.object_id),
stats.last_execution_time
FROM
sys.dm_exec_procedure_stats stats
INNER JOIN sys.objects sysobject ON sysobject.object_id = stats.object_id
WHERE
sysobject.type = 'P'
and (sysobject.object_id = object_id('schemaname.procedurename')
OR sysobject.name = 'procedurename')
ORDER BY
stats.last_execution_time DESC
3 votes
Nous avons tous les journaux de bord de nos Sprocs qui ont été appelés. Tous nos Sprocs ont un paramètre pour l'ID de la session, et celui-ci est inclus dans le journal (avec toute erreur soulevée et la durée). Nous sommes à l'aise (jusqu'à présent !) avec l'overhead, et cela nous a aidé à déboguer et à établir des rapports de gestion.