识别SQL Server性能问题

识别SQL Server性能问题

Identifying SQL Server Performance Problems

我们的SQL Server 2005群集上有零星的随机查询超时。 我拥有一些使用它的应用程序,因此在调查中提供了帮助。 在常规Perfmon中观看%CPU时间时,您肯定可以看到它固定不变。 但是,SQL活动监视器仅提供进程使用的累积CPU和IO时间,而不提供当时或在特定时间范围内正在使用的时间。 也许我可以使用探查器并进行跟踪,但是该群集使用率很高,恐怕我会在大海捞针中寻找针头。 我在树错树上吠叫吗?

在这种环境下,没有人有一些好的方法来跟踪昂贵的查询/过程吗?


这将按平均CPU时间为您提供前50条语句,请在此处查看其他脚本:http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql2005/default.mspx?mfr=true

1
2
3
4
5
6
7
8
9
10
11
12
13
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


我发现效果仪表板报告非常有用。它们是Microsoft提供的一组自定义RS报告。您只需要在客户端PC上运行安装程序,然后在SQL Server实例上运行setup.sql。

之后,右键单击SSMS中的数据库(无关紧要),然后转到"报告"->"自定义报告"。导航至默认情况下位于\ Program Files \ Microsoft SQL Server \ 90 \ Tools \ PerformanceDashboard文件夹中的performance_dashboard_main.rdl并选择它。您只需要执行一次。第一次之后,它将显示在报告列表中。

仪表板主视图将显示一段时间内的CPU利用率等信息。您可以偶尔刷新它。当您看到峰值时,只需单击图形中的条以获取其背后的详细数据。


正如Yaakov所说,在典型负载下运行Profiler几分钟,然后将结果保存到表中,这将使您可以针对结果运行查询,从而更容易发现任何占用资源的查询。


我们使用Quest的Spotlight产品。显然,这是对时间和金钱的投资,因此它可能不会在短期内帮助您,但是如果您拥有大型SQL环境,则它非常有用。


Erland Sommarskog的此实用程序非常有用。

这是一个添加到数据库的存储过程。每当您想查看哪些查询处于活动状态并获得有关锁,块等的清晰图像时,都应运行它。当事情看起来很混乱时,我会定期使用它。


运行Profiler并筛选查询次数超过一定数目的查询。对于我处理过的应用程序,任何花费超过5000次读取的非报告查询都值得一看。您的应用可能有不同的阈值,但想法是相同的。


Profiler看起来像是"大海捞针"的方法,但它可能会发现有用的东西。尝试在数据库处于典型负载的情况下运行它几分钟,然后查看是否有任何查询因占用过多时间或以某种方式占用资源而脱颖而出。虽然这种情况可能指向某个一般性问题,但也可能与一个或两个站点的某个特定问题有关,在某些情况下,这些问题弄得一团糟,导致整体性能非常差。


推荐阅读

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    笔记本无法识别鼠标usb设备怎么办

    笔记本无法识别鼠标usb设备怎么办,鼠标,无法识别,本文目录笔记本无法识别鼠标usb设备怎么办usb鼠标连接电脑显示无法识别该设备是怎么回事

    优化PostgreSQL中的批量更新性能

    优化PostgreSQL中的批量更新性能,数据,表格,在Ubuntu 12.04上使用PG 9.1. 我们目前需要24小时才能运行大量UPDATE数据库上的语句,其形式

    诺基亚威图性能好到哪里

    诺基亚威图性能好到哪里,诺基亚,手机,诺基亚威图性能好到哪里这是一部以前列出的手机。即使当时配置不高,该品牌的手机也不依赖于该功能吸

    魅蓝note6性能参数有哪些

    魅蓝note6性能参数有哪些,摄像头,蓝牙,魅蓝note6性能参数有哪些魅力蓝色Note6最好拍照。电池寿命更长。蓝色Note6使用高通 snapdragon 625

    如何肉眼识别山寨U盘

    如何肉眼识别山寨U盘,,核心提示:市面上每种颜色的U盘,大多是非品牌名称,那么如何识别这些仿仿U盘呢让我们分享下面的秘密。1,用肉眼看到的山寨

    国产电脑cpu测试|国产CPU性能

    国产电脑cpu测试|国产CPU性能,,国产CPU性能天玑9000答: 天玑9000更厉害。因为天玑9000是 最新发布的cpu,也是现在的天花板。而麒麟9000是 2