我通过查询DMV sys.dm_exec_procedure_stats
来测量数据库中存储过程的执行时间。
我发现某些存储过程根本没有在sys.dm_exec_procedure_stats
中列出。在调查之后,似乎包含DDL语句(ALTER TABLE等)的存储过程根本没有被缓存,因此不会从sys.dm_exec_procedure_stats
或sys.dm_exec_cached_plans
返回。
我在SQL Server 2008上观察到这种行为。当我使用2012时,行为是不同的 - 所有存储过程似乎都被缓存并从DMV返回。我没有在微软官方网站上找到任何提及的内容。
这有什么解决方法吗?我想获得执行DDL语句的存储过程的执行统计信息(例如执行时间)......