sqlserver-揭开隐藏数据的面纱,优化应用程序性能

sqlserver-揭开隐藏数据的面纱,优化应用程序性能

ID:9507349

大小:121.50 KB

页数:28页

时间:2018-05-01

sqlserver-揭开隐藏数据的面纱,优化应用程序性能_第1页
sqlserver-揭开隐藏数据的面纱,优化应用程序性能_第2页
sqlserver-揭开隐藏数据的面纱,优化应用程序性能_第3页
sqlserver-揭开隐藏数据的面纱,优化应用程序性能_第4页
sqlserver-揭开隐藏数据的面纱,优化应用程序性能_第5页
资源描述:

《sqlserver-揭开隐藏数据的面纱,优化应用程序性能》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、SQLServer:揭开隐藏数据的面纱,优化应用程序性能>>教育资源库  本文示例源代码或素材下载  本文讨论:  动态管理视图和函数  服务器等待的原因  常见索引问题  与逻辑I/O关联的问题  本文使用了以下技术:  SQLServer目录  服务器等待的原因  读和写  数据库缺失索引  高开销的缺失索引  未使用的索引  高开销的已使用索引  常用索引  逻辑上零碎的索引  高I/O开销的查询  高CPU开销的查询  高开销的CLR查询  最常执行的查询  受阻塞影响的查询  最低计划重用率  进一步探讨  许多应用程序性能问题追根溯源

2、都可以归咎到性能欠佳的数据库查询;但是,有许多方法可以用来提高数据库性能。SQLServerTM2005收集许多信息,可以使用这些信息来确定产生此类性能问题的原因。  SQLServer2005收集与运行查询有关的数据。此数据存放在内存中,并从服务器重新启动后开始累积,可用于确定许多问题和指标,包括那些与表索引、查询性能和服务器I/O相关的问题和指标。可以通过SQLServer动态管理视图(DMV)和相关动态管理函数(DMF)查询此数据。这些都是基于系统的视图和函数,提供可用于诊断问题和调整数据库性能的服务器状态信息。  本文重点介绍使用SQLS

3、erver2005收集的信息来提高性能的领域。这种方法在很大程度上是一种非入侵式方法,因为它收集并研究现有数据,通常是查询基础系统数据。  我将演示如何获取此信息、讨论基础DMV、确定解释数据时要注意的所有问题,并指出其他一些可能会提高性能之处。为此,我将提供并分析一系列SQL脚本,这些脚本详细说明了SQLServer2005所收集数据的各个方面。可以从《MSDN®杂志》网站下载此脚本的完整版本(全部带CTTOP10    [TotalReads]=SUM(total_logical_reads)    ,[Executioncount]

4、=SUM(qs.execution_count)    ,DatabaseName=DB_NAME(qt.dbid)FROMsys.dm_exec_query_statsqsCROSSAPPLYsys.dm_exec_sql_text(qs.sql_handle)asqtGROUPBYDB_NAME(qt.dbid)ORDERBY[TotalReads]DESC;SELECTTOP10    [Total(total_logical_e=DB_NAME(qt.dbid)FROMsys.dm_exec_query_statsqsCROSSAPPLY

5、sys.dm_exec_sql_text(qs.sql_handle)asqtGROUPBYDB_NAME(qt.dbid)ORDERBY[TotalostReadsandV来查看此信息。  使用图3所示的脚本,可以显示给定服务器上的哪些数据库缺失索引。发现这些缺失索引很重要,因为这些索引通常提供检索查询数据所需的最佳路径。这可以随之减少I/O,从而提高整体性能。我的脚本会检查sys.dm_db_missing_index_details,并按数据库将缺失索引数相加,从而轻松确定需进一步调查哪些数据库。Figure3IdentifyingMiss

6、ingDatabasesSELECT  DatabaseName=DB_NAME(database_id)  ,[NumberIndexesMissing]=count(*)FROMsys.dm_db_missing_index_detailsGROUPBYDB_NAME(database_id)ORDERBY2DESC;  Figure3IdentifyingMissingDatabases  数据库常分为基于事务的系统和基于报告的系统。将所显示的缺失索引应用到报告数据库相对容易。另一方面,对事务性数据库而言,通常需要进一步调查对基础表数据附加

7、索引的影响。  高开销的缺失索引  索引可对查询性能产生不同程度的影响。您可以深入了解服务器上所有数据库中开销最高的缺失索引,找出哪些缺失索引可能对性能产生最显著的正面影响。  sys.dm_db_missing_index_group_statsDMV记录了SQL尝试使用特定缺失索引的次数。sys.dm_db_missing_index_detailsDMV详细显示缺失索引的结构,例如查询所需的列。这两个DMV通过sys.dm_db_missing_index_groupsDMV联系在一起。缺失索引的开销(总开销列)的计算方法是,用户平均总开销

8、与用户平均影响的积,再乘以用户搜寻次数与用户扫描次数的和。  可以使用图4所示的脚本来确定开销最高的缺失索引。此查询的结果(按总开销排序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。