設定平行索引作業

在執行 Microsoft SQL Server 2005 Enterprise Edition 的多處理器電腦上,索引陳述式可能會使用更多的處理器,來執行與索引陳述式關聯的掃描和排序作業,就像其他查詢一樣。執行單一索引陳述式所運用的處理器數目,是由 max degree of parallelism 組態選項以及目前的工作負載來決定。max degree of parallelism 選項可用來限制用於平行計劃執行的處理器個數。如果「SQL Server 2005 Database Engine」偵測到系統正在忙碌,在陳述式執行開始之前,會先自動降低索引作業之平行處理原則的程度。

ms189329.note(zh-tw,SQL.90).gif附註:
只有 SQL Server 2005 Enterprise Edition 才支援平行索引作業。

查詢最佳化工具所使用的處理器數目通常可以提供最佳的效能。然而,諸如建立、重建、卸除非常大的索引都需要大量的資源,並可能在索引作業期間造成其他應用程式和資料庫作業的資源不足。當發生此問題時,您可以指定 MAXDOP 索引選項和限制索引作業要使用的處理器數目,以手動設定執行索引陳述式要使用的處理器數目。

MAXDOP 索引選項只會針對指定此選項的查詢來覆寫 max degree of parallelism 組態選項。下表列出使用 max degree of parallelism 組態選項及 MAXDOP 索引選項可以指定的有效整數值。

描述

0

視目前的系統工作負載而定來使用可用的 CPU 實際數目。這是預設值且為建議的設定。

1

抑制平行計劃的產生。作業必須循序執行。

2-64

將處理器的數目限制成指定的值。視目前的工作負載而定來使用較少的處理器。如果指定的值大於可用的 CPU 個數,就會使用實際可用的 CPU 個數。

平行索引執行與 MAXDOP 索引選項適用於下列 Transact-SQL 陳述式:

  • CREATE INDEX
  • ALTER INDEX REBUILD
  • DROP INDEX (僅適用於叢集索引。)
  • ALTER TABLE ADD (索引) CONSTRAINT
  • ALTER TABLE DROP (叢集索引) CONSTRAINT

在使用 MAXDOP 索引選項時,所有使用 max degree of parallelism 組態選項的語意規則皆適用。如需詳細資訊,請參閱<max degree of parallelism 選項>。

當您執行加上或不加上 LOB_COMPACTION 的 ALTER INDEX REORGANIZE 時,max degree of parallelism 值是單一執行緒作業。在 ALTER INDEX REORGANIZE 陳述式中無法指定 MAXDOP 索引選項。

線上索引作業

線上索引作業允許索引作業期間進行使用者並行活動。您可以使用 MAXDOP 選項控制線上索引作業專用的處理器數目。以此方式,您就可以平衡索引作業所使用的資源以及使用者並行所使用的資源。如需詳細資訊,請參閱<線上執行索引作業>。

資料分割索引作業

如果查詢最佳化工具將平行處理原則的程度套用至建立作業,則需要排序的資料分割索引作業可能需要更多的記憶體。平行處理原則的程度愈高,所需的記憶體就愈大。如需詳細資訊,請參閱<資料分割索引的特殊指導方針>。

範例

下列範例會在 ProductVendor 資料表上建立 IX_ProductVendor_VendorID 索引並將 max degree of parallelism 選項設為 8。假設伺服器有八個或更多的處理器,Database Engine 會限制索引作業的執行為八個或更少的處理器。

USE AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.indexes
            WHERE name = N'IX_ProductVendor_VendorID')
    DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
GO
CREATE INDEX IX_ProductVendor_VendorID 
ON Purchasing.ProductVendor (VendorID)
WITH (MAXDOP=8);
GO

請參閱

概念

平行查詢處理

其他資源

ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE INDEX (Transact-SQL)
DROP INDEX (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助