我完成了我的项目,使用了很多程序,现在我找到了最常用的程序和平均执行时间。
通过这种方式,我知道我需要先调整哪些程序?
有没有办法获取特定数据库的过程执行历史记录?
答案 0 :(得分:5)
我相信您可以使用sys.dm_exec_query_stats动态管理视图。此视图中有两列名为execution_count,total_worker_time可以帮助您。
execution_count给出自上次重新编译以来存储过程执行的总次数。
total_worker_time给出自上次重新编译以来执行此存储过程所花费的总CPU时间(以毫秒为单位)。
这是一个MSDN链接: http://msdn.microsoft.com/en-us/library/ms189741.aspx
答案 1 :(得分:1)
您可以使用dm_exec_cached_plans
查找已编译到查询计划中的存储过程。函数dm_exec_query_plan
可用于检索计划的object id
,而计划又可以转换为程序的名称:
select object_name(qp.objectid)
, cp.usecounts
from sys.dm_exec_cached_plans cp
cross apply
sys.dm_exec_query_plan(cp.plan_handle) qp
where cp.objtype = 'Proc'
order by
cp.usecounts desc
答案 2 :(得分:0)
答案 3 :(得分:-1)
我想你想检查一下SQL Server Profiler。 您也可以在MSDN和其他地方查看详细信息。
但是,在生产服务器中使用它之前,您需要记住:
Profiler adds too much overhead to production server
。因此,首先检查您的网站点击次数是否较少,然后继续。
答案 4 :(得分:-1)
这是SQL Server Profiler的用途。有了它,您可以跟踪查询运行次数,执行时间等。