好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQL Server Performance Dashboard Reports

SQL Server Performance Dashboard Reports

SQL Server Performance Dashboard Reports是一组Reporting Services的报表,和SQL Server Management Studio中所介绍的报表一起使用。这些报表允许数据库管理员快速地确定他们的系统中是否存在瓶颈,瓶颈是否正在发生,捕获这些附加的诊断数据可能会对解决问题更有帮助。例如,系统正在等待disk IO,这是Dashboard就允许用户可以快速地查看哪一个session,session中的哪一个查询计划,查询计划中哪一条语句最消耗IO。

Performance dashboard可以帮助解决一些普遍的性能问题,包括:

-CPU瓶颈问题(什么查询最消耗CPU) 
-IO瓶颈问题(什么查询最消耗IO) 
-由查询优化器产生的索引推荐方案(未使用索引) 
-阻塞问题 
-Latch竞争问题

SQLServer2005的性能工具Performance Dashboard是新添加到SQLServer2005的并在SP2发布之后不久就可用的一款扩展工具。具体的安装参看  [原]安装SQL Server 2005 Performance Dashboard Reports的技巧 。SQL Server 2008/2008 R2/2012的Performance Dashboard报表可以从这里下载最新的工具包:  Microsoft® SQL Server® 2012 Performance Dashboard Reports 。

这些捕获到报表中的信息源于SQL Server的动态管理视图,它不需要额外的跟踪或数据捕获,信息一致可用,所以它是一个不怎么消耗资源的一种管理服务器的方法。

Reporting Services对于使用Performance Dashboard报表并不是必须要安装的。

1、下载 SQL Server 2008/2008 R2/2012的Performance Dashboard报表:  Microsoft® SQL Server® 2012 Performance Dashboard Reports  ,安装后在C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Performance Dashboard 下可以找到setup.sql和相关自定义报表。

readme里头有安装的方法,帮助文件里头有具体的使用方法。

2、开启SSMS 执行setup.sql

3、选择自定义报表performance_dashboard_main.rdl,载入后即可看到性能分析报表:

Performance Dashboard不收集也不存储任何信息,而是从SQL Server内部取出当前存在的数据。正因如此,大量的数据都是从某一特定时间开始的,但是有时,你会看到一些历史数据,作为副产品来查看SQL Server如何工作。历史数据很有限,但是很有用,我们之后会提到。

我之所以指出这个原因,是因为你必须手动的刷新Performance Dashboard来获取你SQL Server最新的活动快照。这也很容易做,只要单击Performance Dashboard顶端的refresh按钮就可以了,就像下面这张图这样。

现在,我们看看一些Performance Dashboard的主要区域,看看他们能够告诉我们些什么。主页面分五大区块。

1.查看CPU使用率,如果SQL Server CPU使用率长时间超过80%的话,可能须注意是否I/O造成CPU瓶颈(过度switch)。

System CPU Utilization

对于大多数DBA,System CPU Utilization(系统CPU使用率)图表非常有用。你能看到至少15分钟的SQL Server的CPU活动情况,从SQL Server启动开始,每分钟一次更新。但是,请注意,如果你刚启动SQL Server的服务,将没有CPU的活动图表,因为还未满15分钟,15分钟后,你会第一次看到这些数据。而在这里还想强调的是,CPU的使用率并不是一个精确的数值,而是一个大约值,但是一个大约的值也已经足够了。在下面的例子中,你会看到一个15分钟CPU数据,并且每次更新之后,这个图表依旧显示的是一段15分钟长的CPU活动的数据。

Performance Dashboard不仅提供了CPU使用状况的信息,还提供了许多其他的宝贵信息,我们来继续看一看。

2.查看目前请求所等待的类型,这里可以看出有那些资源竞争的情况(如果等待时间过长)。

SQL Server每秒执行成百上千的操作,但它们并不是同时完成的。也就是说,许多活动通常都需要短期的“等待”。实际上,SQL Server利用数百种不同的等待状态来解决它们的复杂性。作为一个DBA,我们的目标是将这种等待状态最小化。等待状态越多,或者等待时间越长,性能就会越慢。当等待状态达到正常值的时候,扩展的等待状态就不在需要,需要将这些状态鉴别和更正。

SQL Server利用各种DMV来跟踪这些等待状态,有趣的是,SQL Server还能收集一些自上次SQL Server服务重启开始的一些等待状态的历史数据,这些历史数据和当前的等待状态信息都是对DBA非常有用的。

在初始的Performance Dashboard屏幕中,你可能会看到下面的图标。注意,只是“可能”看到。这是因为这个图表显示的是Performance Dashboard上次刷新时的当前等待状态的信息。很可能当时没有等待状态,如果如此,那就不会再屏幕中出现这类图表。

3.查看目前活动相关信息,这里你可以快速看出快取击中率的数值(建议>90%)。

图中的User Requests和User Sessions,这些数据都是Performance Dashboard在上次更新时获取的。另外,elapsed time(消逝时间)和cache hit ratio(缓存触发率)的值指的是之前的全部完成的请求的消逝时间总和。点击蓝色的User Requests 或 User Sessions你可以看到下拉的信息。当点击User Requests,你可以看到下图的信息,显示出上次更新时的当前用户请求。(与之前的部分图一样,为了省略显示,这张图被截断,真实的图标有更多的信息。)

当你点击User Sessions时,你可以看到下列的报表:

这个报表与Management Studio的Current Activity显示的信息比较相似,但它能提供更多的信息。(同样,这个报表也是被截断的,真实的报表比这更长。)

4.查看相关历史信息,这里的数据我认为相当有价值,可以看出I/O Read/Writes状况,以及何种等待类型最多。还有可以找出最耗时的查询(依CPU、运行时间...等)。

虽然Performance Dashboard并不收集历史数据,但是一些SQL Server的DMV是收集的,我们可以看下图,这些是利用DMV的数据显示出的历史数据:Waits, IO Statistics, 和 Expensive Queries。

Waits

这个报表显示了一个自SQL Server实例重新启动开始发生的所有等待状态的一个历史数据的快照。

在上述的例子中,我们能看到sleep wait state和this SQL Server实例记录的Network IO类别的最大等待状态。如果想查看更多的详细信息,可以展开这些状态类别。这些信息都非常强大,它可以帮助我们去确定这种等待状态是不是对SQL Server的性能有消极的影响。

IO Statistics

这些历史报表告诉你哪个数据库最消耗IO,以及一些其他的附加信息。下面的截图是报表的顶端部分,总结的数据库的IO情况。

下图是这个报表的另一个部分,能看查看哪一个对象最消耗IO。另外,如果发现了有出现missing index的情况,你可以下拉报表来查看具体是哪个missing index,这样就可以把它重新加上。

Expensive Queries

这部分提供了我们在其他查询报表所看到的相似的信息,但它显示的是SQL Server中当前被加入缓存的那些查询语句。这样我们就能给我们更好的展示,来看我们的服务器究竟发生了什么。有六种不同方式的结果排序选项(每一种都将形成一个单独的报表)。你也可以下拉查看详细信息。

5.综合信息可以快速浏览如数据库总览、扩充事件..等。

Active Traces

Active Traces鉴别了当前SQL Server实例中所执行的所有trace。即使你不能运行Profiler Trace,你依然可以看到这个active trace信息。为什么呢?这是因为SQL Server一直在自动地为你跟踪这些事件,当你在这个实力上执行一个Profiler Trace是,你会看到如下的信息。

Databases

Databases的报表提供了一个当前实例中数据库的快速浏览,可以快速查看这些主要数据库的配置选项。

Missing Indexes

最后一个报表列出了SQL Server所确定的所有missing index。这个分析没有Database Engine Tuning Advisor所做的那么全面,但它显示出了明显的missing index。其实我们只是希望在这个列表中不出现任何的missing index,这代表我们的数据库设计的更好。

最后提醒一下各位:

这些统计信息的数据源大多来自于 SQL Server 里所谓的  动态管理检视  ( DMV ),这些信息是从数据库实体 (Instance) 启动之后所累积的动态信息,所以 SQL Server 跑得越久,所收集到的信息越精准,也越能找出在启动 SQL Server 服务之后到现在所累积的效能问题有哪些。

相关文章:

如何在 SQL 2008 安裝 Performance Dashboard Reports

[SQL]SQL Server 2008使用Extended Events SSMS Addin + Performance Dashboard Reports來監看系統

善用Performance Dashboard Reports

作者:  自由、创新、研究、探索……
出处: http://shanyou.cnblogs.com/
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任 

翻译此页 阿拉伯语 爱沙尼亚语 白苗语 保加利亚语 波兰语 波斯语 朝鲜语 丹麦语 德语 俄语 法语 繁体中文 芬兰语 海地克里奥尔语 荷兰语 加泰隆语 捷克语 拉脱维亚语 立陶宛语 罗马尼亚 挪威语 葡萄牙语 日语 瑞典语 斯洛伐克语 斯洛文尼亚语 泰语 土耳其语 乌克兰语 西班牙语 希伯来语 希腊语 匈牙利语 意大利语 印地语 印度尼西亚语 英语 越南语

Microsoft ®  Translator

 

分类:  SQL Server

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于SQL Server Performance Dashboard Reports的详细内容...

  阅读:43次