我们有零星的,随机查询超时在我们的SQL服务器2005年的集群。我自己的一些应用程序,使用它,所以我帮助了调查。当看该进程中定期ol'性能,你当然可以看到它挂钩。然而,SQL活动监测器只给出了累积CPU和IO时间使用的一个进程,而不是它的使用权后,或在特定时间框架。也许我可以使用的分析器和运行跟踪,但这个集群是非常大量使用我怕我会找一个大海捞针。我叫了错误的树吗?

任何人都不会有一些很好的方法用于追踪昂贵的查询/工艺在这种环境?

有帮助吗?

解决方案

这会给你50的发言CPU平均时间,检查这里其他的脚本: http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql2005/default.mspx?mfr=true

SELECT TOP 50
        qs.total_worker_time/qs.execution_count as [Avg CPU Time],
        SUBSTRING(qt.text,qs.statement_start_offset/2, 
            (case when qs.statement_end_offset = -1 
            then len(convert(nvarchar(max), qt.text)) * 2 
            else qs.statement_end_offset end -qs.statement_start_offset)/2) 
        as query_text,
        qt.dbid, dbname=db_name(qt.dbid),
        qt.objectid 
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY 
        [Avg CPU Time] DESC

其他提示

我已经找到了 业绩报告的仪表板 是非常有帮助的。他们是一组的定义RS报告提供。你只需要运行安装在你的客户的电脑,然后运行的设置。sql SQL服务器上的实例。

在那之后,正确的点击数据库(不论这一)在短程和goto报告-->的定制报告。导航和选择performance_dashboard_main.rdl其位于在中\程序文件\Microsoft SQL Server\90\工具\PerformanceDashboard文件夹中的默认。你只需要做一次。在第一时间之后,它将显示在报告的列表。

主要的仪表板图将显示CPU利用过时,除其他事项。你可以刷新它偶尔。当你看到一个高峰,只需点击栏中的曲线图,以获得详细的数据。

我们使用追求的 聚光灯 产品。显然这是一种投资在时间和金钱所以这不会帮助你在短期但是如果你有一个大SQL的环境,这是非常有用的。

如雅各布说,运行分析器几分钟之下的典型负载和保存的结果,以表格,这将允许运行查询的结果使得更容易发现任何资源占用的查询。

探查可能看起来像是"大海捞针"的方法,但它可能把一些有用的东西。试试运行了几分钟数据库时,在典型负载,并看到如果任何查询站出来为把太多的时间或占用的资源在某些方面。虽然这样一种情况可能指向一些一般性问题,它也可能是相关的一些具体问题的一个或两个网站,其混乱的东西足够在某些情况下造成非常贫穷的性能。

行分析器和滤波器,用于查询,需要超过一定数量的读取。为应用我的工作上,任何未提交报告的查询了超过5000读取得的第二个看看。你的应用程序可能有不同的阈值,但这个想法是相同的。

这个工具 由厄兰Sommarskog赫然是有用的。

这是一个存储程序添加到数据库。运行每当你想看到什么样的查询活动并得到良好的照片锁,等等。我经常使用它时事情好像出问题了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top