`

SQL Server DMVs

 
阅读更多

扫盲: DMV = Dynamic Management Views,动态管理视图

 

Microsoft introduced a few more dynamic management views to also assist with identifying possible index candidates based on query history.

 

The dynamic management views are:

 

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,查询Missing Index的方案

 

 

    SELECT

      migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) AS improvement_measure,

      'CREATE INDEX [missing_index_' + CONVERT (varchar, mig.index_group_handle) + '_' + CONVERT (varchar, mid.index_handle)

      + '_' + LEFT (PARSENAME(mid.statement, 1), 32) + ']'

      + ' ON ' + mid.statement

      + ' (' + ISNULL (mid.equality_columns,'')

        + CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN ',' ELSE '' END

        + ISNULL (mid.inequality_columns, '')

      + ')'

      + ISNULL (' INCLUDE (' + mid.included_columns + ')', '') AS create_index_statement,

      migs.*, mid.database_id, mid.[object_id]

    FROM sys.dm_db_missing_index_groups mig

    INNER JOIN sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle

    INNER JOIN sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle

    WHERE migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) > 10

    ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC

 

 

Reference:

http://www.mssqltips.com/sqlservertip/1634/using-sql-server-dmvs-to-identify-missing-indexes/

http://www.infoq.com/cn/articles/wy-sqlserver-performance-optimization/

http://blogs.msdn.com/b/bartd/archive/2007/07/19/are-you-using-sql-s-missing-index-dmvs.aspx

http://www.devguru.com/technologies/t-sql/7108

 

 

 

分享到:
评论

相关推荐

    SQL Server DMVs in Action

    《SQL Server DMVs实战》一书深入探讨了SQL Server中的动态管理视图(Dynamic Management Views,简称DMVs),这是数据库管理员、开发人员和性能优化专家不可或缺的资源。本书由Ian W. Stirk撰写,旨在帮助读者更好...

    Manning.SQL.Server.DMVs.in.Action

    ### SQL Server DMVs (Dynamic Management Views) in Action #### 标题与描述解析 - **标题**: "Manning.SQL.Server.DMVs.in.Action" - **描述**: "Manning.SQL.Server.DMVs.in.Action" 这两个标题实际上指向的是...

    SQL Server DMVs in Action(Manning,2011)

    SQL Server DMVs in Action shows you how to obtain, interpret, and act on the information captured by DMVs to keep your system in top shape. The over 100 code examples help you master DMVs and give you...

    SQL.Server.DMVs.实战

    ### SQL Server DMVs 实战:深入理解与应用 #### 一、引言 自2005年以来,动态管理视图(Dynamic Management Views,简称DMVs)已成为SQL Server性能监控的核心工具之一。对于希望成为数据库管理员(DBA)或优秀数据库...

    SQL Server DMV 使用

    通过阅读RedGate团队撰写的《SQL Server DMV Starter Pack》等专业书籍,DBA可以获得关于如何使用DMVs进行性能调优和问题诊断的详细指导。 需要注意的是,DMVs中存储的数据是敏感的,可能包括服务器配置、数据库...

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

    其中包含了3本想成为SQLServerDBA或专家必看的书:1.Microsoft SQL Server 2008 Internals能够帮助你深入理解SQLServer2008的内部结构和工作原理。2.SQL Server 2008 Query Performance Tuning Distilled能够帮助你...

    Microsoft SQL Server 2005 向后兼容组件SQLServer2005_BC.msi

    SQLServer2005_BC.msi 文件是这个向后兼容组件的安装程序,它包含了用于在更新的SQL Server环境中模拟SQL Server 2005环境的特定库和接口。安装此组件后,用户可以继续使用那些设计时依赖SQL Server 2005特性的应用...

    SQL Server Useful DMVs

    ### SQL Server 动态管理视图 (DMVs):实用查询与分析 #### 一、动态管理视图(DMVs)概述 动态管理视图(Dynamic Management Views, 简称 DMVs)是 SQL Server 提供的一组特殊视图,用于获取关于服务器运行时状态...

    Sql Server 2014 安装包

    - 对于开发和管理员,理解并运用SQL Server的性能调优工具和技巧至关重要,如查询分析器、动态管理视图(DMVs)和性能计数器。 - 高级特性如复制、分区、Service Broker等,以及与BI工具(如SSIS、SSAS、SSRS)的...

    sqlserver数据库精简版

    11. **性能优化**:SQL Server有内置的性能监控和调优工具,如动态管理视图(DMVs)、性能计数器和SQL Server Profiler,帮助识别和解决性能瓶颈。 尽管"SQL Server数据库精简版"可能不包含所有这些特性,但它仍能...

    使用DMV对SQLServer进行性能调优

    其中,动态管理视图(Dynamic Management Views,DMVs)和动态管理函数(Dynamic Management Functions,DMFs)是在SQL Server 2005版本之后引入的一组关键功能,它们为数据库管理员(DBA)和数据库开发人员提供了...

    SQL SERVER 2008安装包.rar

    SQL Server 2008 提供了性能监视工具,如SQL Server Profiler和动态管理视图(DMVs),帮助识别性能瓶颈,并提供优化建议。 8. **开发与集成**: 支持多种开发语言,如.NET、Java、PHP等,通过ODBC、JDBC和OLE DB...

    DMVs(数据库性能分析)

    DMVs(动态管理视图)是SQL Server中的一组视图,它们提供了对SQL Server内部工作的详细信息。这些视图让数据库管理员和开发人员能够深入了解服务器的运行状况、性能问题、资源消耗等情况。动态管理视图可以用来监控...

    Professional Microsoft SQL Server 2008 Administration

    5. **性能调优**:涵盖监控和分析SQL Server性能的方法,如使用动态管理视图(DMVs)和性能计数器,以及如何进行查询优化,包括索引优化和查询改写。 6. **高可用性**:探讨SQL Server 2008的高可用性解决方案,如...

    SQLServer 性能仪表盘(Performance Dashboard Reports)

    SQLServer 性能仪表盘(Performance Dashboard Reports)是SQL Server管理工具中的一种强大特性,它为数据库管理员提供了直观且详尽的性能监控解决方案。通过这些报告,DBAs能够快速识别和解决性能瓶颈,优化数据库...

    SQL Tuning sqlServer 数据库

    以上内容只是《SQL Tuning in sqlServer 数据库》教程的部分要点,通过深入学习,你可以掌握一系列SQL Server性能优化的技巧和最佳实践,从而更好地管理和优化你的数据库系统。CHM格式的文档通常包含丰富的超链接和...

    sqlserver2008视频教程

    - **性能监控工具**:熟悉 SQL Server 内置的性能监控工具,如动态管理视图(DMVs)、SQL Profiler 等。 - **索引优化策略**:掌握索引创建、维护以及优化方法,提高查询效率。 - **查询优化技巧**:学习如何优化 ...

    SQL Server 2012数据库技术与应用(微课版)-综合实训及答案.zip

    7. **性能监控与调优**:学习使用SQL Server的内置工具(如SQL Server Management Studio, Profiler, DMVs)来监控数据库性能,找出瓶颈,并采取相应的优化措施。 8. **集成服务与 Reporting Services**:了解SQL ...

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

    SQL Server的兼容模式是一个关键的设置,它影响着数据库的行为和功能。在SQL Server中,兼容模式并不意味着数据库可以与相同级别的旧版本服务器兼容。例如,一个设置为80兼容模式的数据库并不能直接附加或恢复到SQL ...

    零点起飞学SQL Server

    学习使用Dynamic Management Views (DMVs)和Profiler工具,将有助于你深入理解SQL Server的运行机制,从而提升整体系统性能。 总的来说,《零点起飞学SQL Server》教程涵盖了从安装到使用的全过程,旨在让你从零...

Global site tag (gtag.js) - Google Analytics