SQL Server Profilerを使用する以外に、どのストアドプロシージャが使用されているか、または少なくとも最後に実行されたときを追跡する方法はありますか?
プランキャッシュを調べて、ストアドプロシージャの使用法についてかなりの知識を得ることができます。たとえば、次のクエリを見てください。
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
これにより、usecounts
に関連してキャッシュされるストアドプロシージャのSomeDB
が得られます。
注:プランキャッシュには実行プランが含まれています。これらの計画の保持には、多くの要因が関係します。これにより、何がどのように使用されているかがよくわかりますが、ストアドプロシージャの現在の合計や、どのくらいの頻度/いつであるかは間違いありません。彼らは処刑された。
これを見ることができ、すべてのストアドプロシージャのlast_execution_time
の情報が含まれています。
SELECT DB_NAME(database_id)
,OBJECT_NAME(object_id,database_id)
,cached_time
,last_execution_time
,execution_count
FROM sys.dm_exec_procedure_stats