81 votes

Date de la dernière exécution d'une procédure stockée en MS SQL

Nous commençons à avoir beaucoup de procédures stockées dans notre application. Beaucoup d'entre elles sont destinées à des rapports personnalisés, dont beaucoup ne sont plus utilisés. Quelqu'un connaît-il une requête que nous pourrions exécuter sur les vues système dans SQL Server 2005 et qui nous indiquerait la dernière date d'exécution d'une procédure stockée ?

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.

2voto

user5175823 Points 11

J'utilise ceci :

use YourDB;

SELECT 
    object_name(object_id), 
    last_execution_time, 
    last_elapsed_time, 
    execution_count
FROM   
     sys.dm_exec_procedure_stats ps 
where 
      lower(object_name(object_id)) like 'Appl-Name%'
order by 1

1voto

Martin Smith Points 174101

Cela fonctionne bien en 2005 (si le plan est dans le cache).

USE YourDb;

SELECT qt.[text]          AS [SP Name],
       qs.last_execution_time,
       qs.execution_count AS [Execution Count]
FROM   sys.dm_exec_query_stats AS qs
       CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE  qt.dbid = DB_ID()
       AND objectid = OBJECT_ID('YourProc')

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