您目前已離線,請等候您的網際網路重新連線

當 SQL Server 資料庫執行個體具有高索引片段時,可能會降低 SQL 查詢效能

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

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) 1命令物件其平均百分比的分散程度是超過 30%。
  • 使用 [變更索引重新組織指令分散其平均程度百分比是介於 5 到 30%的物件。

avg_fragmentation_in_percent修正陳述式
> 5%,< ==""> ALTER 索引重新組織
> 30 %變更使用的索引重建 (ONLINE = ON) 1
附註
  • 這些值會提供粗略的指導方針,來判斷此時您應該變更索引重新組織變更索引重建之間切換的點。不過,實際的值可能會不同情況。您必須以實驗決定最佳的臨界值,為您的環境。
  • 片段 (少於 5%) 非常低層級不應該處理由兩個命令。這是因為重組或重建索引的成本大幅通常不如移除這類少量的分散程度的好處。

其他相關資訊
如需有關如何重新組織並重建索引的詳細資訊,請前往下列 Microsoft 網站:
下表提供有關產品或自動檢查有這種情況您 SQL Server 的執行個體,並用以評估此規則的 SQL Server 產品版本的工具的詳細資訊。
規則的軟體規則標題規則描述用以評估此規則的產品版本
System Center 顧問SQL Server 高 fragmentations 可能會降級查詢效能System Center 警告器會藉由檢查邏輯片段 avg_fragmentation_in_percent 中的值 sys.dm_db_index_physical_stats 每個 SQL Server 資料庫執行個體索引。如果索引或堆積的平均分散大於 5%,則會產生此警示。從這份文件來解決高索引 fragmentations 相關的問題,請遵循的指示。SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

警告:本文已自動翻譯

內容

文章識別碼:2755960 - 最後檢閱時間:09/27/2012 17:58:00 - 修訂: 1.0

  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • 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
意見反應