我完成了我的项目,使用了很多程序,现在我找到了最常用的程序和平均执行时间。
这样我就知道我需要先调整哪些程序?
有什么方法可以获取特定数据库的过程执行历史记录?
相信您可以使用 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
您可以使用它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
我认为您想为此检查SQL Server Profiler。您也可以在 MSDN 和其他地方查看详细信息。
但是,在生产服务器中使用它之前,您需要记住:
Profiler adds too much overhead to production server
. 因此,首先检查您的网站何时点击次数较少,然后继续。
这就是SQL Server Profiler的用途。有了它,您可以跟踪查询运行次数、执行时间等。