Outre l'utilisation de SQL Server Profiler, existe-t-il un moyen de suivre les procédures stockées qui sont utilisées, ou du moins quand elles ont été exécutées pour la dernière fois?
Outre l'utilisation de SQL Server Profiler, existe-t-il un moyen de suivre les procédures stockées qui sont utilisées, ou du moins quand elles ont été exécutées pour la dernière fois?
Réponses:
Vous pouvez regarder dans le cache du plan pour avoir une assez bonne idée de l'utilisation de la procédure stockée. Prenez cette requête, par exemple:
select
db_name(st.dbid) as database_name,
object_name(st.objectid) as name,
p.size_in_bytes / 1024 as size_in_kb,
p.usecounts,
st.text
from sys.dm_exec_cached_plans p
cross apply sys.dm_exec_sql_text(p.plan_handle) st
where p.objtype = 'proc'
and st.dbid = db_id('SomeDatabase')
order by p.usecounts desc
Cela vous donnera les usecounts
procédures stockées qui sont mises en cache SomeDB
.
Remarque: le cache de plan contient les plans d'exécution. Cette conservation de ces plans implique de nombreux facteurs. Alors que cela vous donnera une bonne idée de ce qui est utilisé et de la fréquence, ce n'est certainement pas le total en cours d'exécution des procédures stockées et à quelle fréquence / quand elles ont été exécutées.
Vous pouvez y jeter un œil, car il contient des informations last_execution_time
sur chaque procédure stockée.
SELECT DB_NAME(database_id)
,OBJECT_NAME(object_id,database_id)
,cached_time
,last_execution_time
,execution_count
FROM sys.dm_exec_procedure_stats