小编Wom*_*nea的帖子

sys.dm_exec_procedure_stats 缺少历史记录?

我的老板想让我找出我们的网站不再使用哪些(大约 400 多个)存储过程。我找到并重新编写了一个脚本,为我提供了最近执行的详细信息,但它只能追溯到 9 月 1 日上午 10:17。

我的老板向我保证(尽管他喜欢在业余时间摆弄服务器)服务器自 5 月 5 日起就开始运行。

我对此很陌生,所以像我是一只特别简单的家养宠物一样解释它,但是有没有理由为什么我的结果表只回溯 1 个月,而不是完整的 6 个月?如果服务器重新启动,我会假设正常运行时间会重置,但我不确定为什么我不会有那么远的任何历史记录。

使用right-click -> modify计数作为执行查看过程吗?

SQL查询

SELECT qt.text AS 'SP Name',
qt.dbid as 'SP DB',
qs.execution_count AS 'Execution Count',
qs.total_worker_time/qs.execution_count AS 'AvgWorkerTime',
qs.total_worker_time AS 'TotalWorkerTime',
qs.total_physical_reads AS 'PhysicalReads',
qs.last_execution_time 'Last Executed'
FROM sys.dm_exec_procedure_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
where qs.database_id = 5
ORDER BY qs.last_execution_time asc
Run Code Online (Sandbox Code Playgroud)

我的问题更多地与结果的时间范围有关。我在获得结果的月份中找到了我需要的信息,但我担心有 6 个月的结果没有被找到。

这将返回 5 月 5 日:

select create_date from sys.databases where name …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures sql-server-2008-r2 dmv

5
推荐指数
1
解决办法
4698
查看次数