2

我完成了我的项目,使用了很多程序,现在我找到了最常用的程序和平均执行时间。

这样我就知道我需要先调整哪些程序?

有什么方法可以获取特定数据库的过程执行历史记录?

4

4 回答 4

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

于 2013-03-31T18:57:57.397 回答
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
于 2013-03-31T19:21:01.677 回答
-1

我认为您想为此检查SQL Server Profiler。您也可以在 MSDN 和其他地方查看详细信息。

但是,在生产服务器中使用它之前,您需要记住: Profiler adds too much overhead to production server. 因此,首先检查您的网站何时点击次数较少,然后继续。

于 2013-03-31T18:57:49.603 回答
-1

这就是SQL Server Profiler的用途。有了它,您可以跟踪查询运行次数、执行时间等。

于 2013-03-31T18:58:00.710 回答