it-swarm-eu.dev

Sledování využití uložené procedury

Kromě použití SQL Server Profiler, existuje nějaký způsob, jak sledovat, které uložené procedury se používají, nebo alespoň při posledním spuštění?

19
DForck42

Můžete se podívat do mezipaměti plánu a získat docela dobrou představu o použití uložené procedury. Vezměte například tento dotaz:

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

Tím získáte usecounts uložených procedur, které jsou uloženy v mezipaměti týkající se SomeDB.

Poznámka: mezipaměť plánu obsahuje plány provádění. Toto zachování těchto plánů zahrnuje mnoho faktorů. Zatímco to vám dá dobrou představu o tom, co se používá a jak často, rozhodně to není běžící součet uložených procedur a jak často/kdy byli popraveni.

Reference BOL o mezipaměti plán

17
Thomas Stringer

Můžete se na to podívat, stejně jako obsahuje informace o last_execution_time každé uložené procedury.

    SELECT DB_NAME(database_id)
    ,OBJECT_NAME(object_id,database_id)
    ,cached_time
    ,last_execution_time
    ,execution_count
FROM sys.dm_exec_procedure_stats
10
Sai Chaitanya M