你目前正处于脱机状态,正在等待 Internet 重新连接

SQL 查询性能可能会降低当 SQL Server 数据库实例具有高索引碎片

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 2755960
概要
如果索引非常零碎的 Microsoft SQL Server 数据库实例中,SQL 查询性能可能会降低。Sys.dm_db_index_physical_stats系统函数可用于检测索引碎片对于以下情况:
  • 特定的索引
  • 在表上的所有索引
  • 在索引视图上的所有索引
  • 在数据库中的所有索引
  • 在所有数据库中的所有索引
要确定大于 30%的分段,请运行下面的 SQL 查询脚本:

SELECT OBJECT_NAME(i.OBJECT_ID) AS TableName, OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS IndexName,i.name AS IndexName, indexstats.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') indexstats INNER JOIN sys.indexes i ON i.OBJECT_ID = indexstats.OBJECT_ID WHERE indexstats.avg_fragmentation_in_percent > 30 AND i.index_id = indexstats.index_id
若要确定要更正碎片的最佳方法,请参阅以下指南:
  • 使用更改索引重建与 (ONLINE = ON) *命令碎片的平均比例是 30%以上的对象。
  • 对碎片的平均比例是 5 到 30%之间的对象,请使用重新组织更改索引命令。

avg_fragmentation_in_percent纠正语句
> 5%,< ==""> ALTER 索引重新组织
> 30 %改变与索引重建 (ONLINE = ON) *
备注
  • 这些值用于确定更改索引重新组织更改索引重建之间应切换的点提供粗略的指导原则。但是,实际值可能不同的情况。您必须进行试验,以确定您的环境的最佳阈值。
  • 不应通过上述任一命令解决很低级别的碎片 (小于 5%)。这是因为被所删除这种少量碎片的好处通常极大地抵消重新组织或重新生成索引的成本。

更多信息
有关如何重新组织并重建索引的详细信息,请转到下面的 Microsoft 网站:
下表提供了有关产品或自动检查此条件和规则计算所依据的 SQL Server 产品版本的 SQL Server 实例上的工具的详细信息。
规则软件规则标题规则说明该规则计算所依据的产品版本
系统中心顾问SQL Server 高 fragmentations 可能降级查询性能系统中心顾问通过检查逻辑碎片 avg_fragmentation_in_percent 中的值 sys.dm_db_index_physical_stats 每个 SQL Server 数据库实例索引。如果索引或堆的平均碎片大于 5%,将生成此警报。按照这篇文章来解决与高索引 fragmentations 相关的问题。SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

警告:本文已自动翻译

属性

文章 ID:2755960 - 上次审阅时间:09/27/2012 17:58:00 - 修订版本: 1.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Web

  • kbsurveynew kbhowto kbexpertiseadvanced kbmt KB2755960 KbMtzh
反馈
="https://c.microsoft.com/ms.js"> /html>