`

监控 SQL Server 的运行状况/使用DMV和DMF分析数据库性能

 
阅读更多

Microsoft SQL Server 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。

常规服务器动态管理对象包括:

    dm_db_*:数据库和数据库对象
    dm_exec_*:执行用户代码和关联的连接
    dm_os_*:内存、锁定和时间安排
    dm_tran_*:事务和隔离
    dm_io_*:网络和磁盘的输入/输出

 

DMV可以解决哪些问题

看完了上面的简单的例子之后,相信朋友们对DMV有了一个感性的认识,下面,我们就来看看,利用DMV,我们可以解决哪些问题。

故障诊断

诊断就是要识别出问题的所在。有很多的方式和工具可以帮助我们达到这个目的,但是,有了DMV,可能效率会更快:没有什么比分析SQL Server内部的元数据来的更快。

很多时候,对问题的诊断也是性能调优的第一步,搞清楚了问题,才好对症下药。

利用DMV可以诊断出以下问题:最慢的查询语句,常见的等待与阻塞,没有用的索引,大量的I/O操作,利用率最低的执行计划。

正如之前所说,我们可以在不同的级别上面分析问题,例如从整个服务器级别,数据库级别,甚至是某个查询。我们可以通过在获取DMV信息时,设置获取 信息的条件来办到。例如,在上一小节的示例中,就是获取整个SQL Server中找出最慢的前20个查询,如果需要,我们完全可以将条件缩小到某个数据库。

很多时候,在识别问题的时候,不是那么容易,仅仅通过一个DMV就搞定了的,需要和DMF结合。甚至要和其他的DMV一起结合分析(在后续文章中,我们会理解的更加深刻)。

诊断出了问题,是一个方面,解决问题也尤为重要。

性能调优

性能调优主要是利用相关的技巧技术之前诊断中出现的问题,从而提升性能。我们后续会详细讲述,这里就不再赘述了。

状态监控

很多的DMV(特别是那些以 sys.dm_exec_开头的)都反映了数据库服务器执行的状态。通过查看这些DMV,我们可以清楚的知道数据库服务器的现在的状态和历史的状态(当 然,如何SQL Server服务被重启,那么之前的信息都丢失了,除非定期做了保存)。例如,数据库需要做批处理等长时间的操作,如果其中操作执行超时或运行的非常慢, 这个时候,我们就可以查询DMV来分析。如果采用Profiler或者相关的Profiler脚本跟踪,会对数据库服务器的压力相当大。再如,还可以分析 数据库中现在有哪些查询在运行,有多少请求在处理,打开多少连接等等,主要是对数据库的操作,都可以通过DMV查询到。



您可以运行以下查询来获取所有 DMV 和 DMF 名称:

SELECT * FROM sys.system_objects
WHERE name LIKE 'dm_%'
ORDER BY name
 

 

分享到:
评论

相关推荐

    使用DMV和DMF分析数据库性能.docx

    使用DMV和DMF分析数据库性能.docx

    SQL Server DMV 使用

    SQL server从2005开始,引入了DMV和DMF来监控数据库的信息。可以用于监控服务器实例的运行状况、诊断问题和优化性能。 DMF和DMV有挺多,做为DBA应该掌握经常用到的语句。。

    使用DMV对SQLServer进行性能调优

    从2005以后引入了DMO(DMV+DMF)作为SQLServer管理工具,本书通过使用DMO,专注于SQLServer的性能优化。性能优化的手段有多种,但是DMO具有便捷的特性,使其在SQLServer的管理中具有不可替代并越来越重要的作用,...

    oracle sqlserver 监控

    从会话状态和等待事件的角度,了解数据库的运行情况,供DBA和... 等待事件是基于“事实”和“数据”的,而非“推测”,结合Oracle AWR、ASH(Sqlserver DMV、Windows计数器),我们可以把性能分析变为可能的方法论。

    SQLSERVER性能调优

    微软资深资料,SQLSERVER 性能 调优 优化 改进 微软

    SQLServer的性能调优:解决查询速度慢的五种方法

    本文主要通过一下几个方面介绍:使用SQLDMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQLAzure查询性能洞察等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是...

    Microsoft SQL Server Performance tunning with DMV

    the bible of Sql server mointor and performance tunning

    SQL优化 DMV 动态视图.rar

    Sql Server 数据库优化常用脚本,性能排查,sql server性能分析--查询死锁的sql语句,sql server性能分析--检测数据库阻塞语句

    sql server性能调优 I/O开销的深入解析

    在明白了sqlserver内存原理后,就能更好的分析I/O开销,从而提升数据库的整体性能。 在生产环境下数据库的sqlserver服务启动后一个星期,就可以通过dmv来分析优化。在I/O分析这块可以从物理I/O和内存I/O二方面来分析...

    SQLServer DBA和专家必看的3本书(高清晰原版)

    其中包含了3本想成为SQLServerDBA或专家必看的书:1.Microsoft SQL Server 2008 Internals能够帮助你深入理解SQLServer2008的内部结构和...3.SQL Server DMVs in Action是DMV使用的最全的参考书,DBA必备。欢迎下载。

    sql2000,2005,2008DMV系统视图工具dmvstats

    sql2000,2005,2008DMV系统视图工具,性能分析的利器

    如何找出你性能差的SQL Server查询

    另一方面这也是个缺点,因为你必须知道各个DMV/DMF,还有如何把它们解释和关联在一起。  至于你的差性能SQLServer查询的一个重要的DMV是sys.dm_exec_query_stats。对于每个缓存的执行计划,SQLServer存储了这个...

    SQL Server误区30日谈 第13天 在SQL Server 2000兼容模式下不能使用DMV

    在SQL Server 2000兼容模式下不能使用DMV 错误   对于兼容模式已经存在了很多误解。80的兼容模式的数据库是否意味着能够附加或恢复到SQL Server 2000数据库?当然不是。这只是意味着一些T-SQL的语法,查询计划的...

    SQLSERVER如何查看索引缺失及DMV使用介绍

    当大家发现数据库查询性能很慢的时候,大家都会想到加索引来优化数据库查询性能,但是面对一个复杂的SQL语句,找到一个优化的索引组合对人脑来讲,真的不是一件很简单的事。 好在SQLSERVER提供了两种“自动”功能,...

    SQL Monitor for Oracle,MySQL和DB2 v2.4.3.6 中文绿色版

    SQL Monitor for Oracle,MySQL and DB2 是款免费的数据库跟踪工具,专门用来分析CPU使用率高的问题。 软件功能: 1. 监控SQL Server的进程和Job,查看当前执行的SQL/命令,并终止之。 2. 对象浏览器,跟 SQL Server...

    SQLSERVER2005常见性能排错

    非常经典全面的数据库调优文档,不二之选

    DMV查询_相关视图与函数_sqlserver_

    SQL Server内核的元数据:通过对内部的元数据的分析,我们快速而准确获取很多与SQL Server内部相关的信息,从而进行性能分析

    SQL Server DMVs in Action

    SQL Server DMVs in Action

Global site tag (gtag.js) - Google Analytics