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