共用方式為


設定平行索引作業

本主題定義平行處理原則的最大程度,並說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中修改此設定。 在執行 SQL Server Enterprise 或更高版本的多處理器電腦上,索引語句可能會使用多個處理器來執行與索引語句相關聯的掃描、排序和索引作業,就像其他查詢一樣。 用來執行單一索引語句的處理器數目取決於 平行處理原則 組態選項的最大程度、目前的工作負載和索引統計數據。 平行處理最大度選項決定執行平行計劃時使用的最大處理器數量。 如果 SQL Server 資料庫引擎偵測到系統忙碌中,在陳述式執行開始之前,會先自動降低索引作業之平行處理原則的程度。 如果非分割索引的主鍵資料行具有數量有限的相異值,或每個相異值的頻率差異顯著,資料庫引擎也可能會降低並行處理的程度。

備註

SQL Server 的所有版本都無法使用平行索引作業。 如需詳細資訊,請參閱 SQL Server 2014 版本支援的功能。

本主題內容

開始之前

限制與制約

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

  • MAXDOP 索引選項僅覆寫針對此選項的查詢所設定的最大平行度 (max degree of parallelism) 組態選項。 下表列出可以透過「最大平行度」組態選項及 MAXDOP 索引選項來指定的有效整數值。

    價值觀 說明
    0 指定伺服器會根據目前的系統工作負載來決定所使用的 CPU 數目。 這是預設值且為建議的設定。
    1 抑制平行計劃方案的生成。 作業必須循序執行。
    2-64 將處理器的數目限制成指定的值。 視目前的工作負載而定來使用較少的處理器。 如果指定的值大於可用的 CPU 個數,就會使用實際可用的 CPU 個數。
  • 平行索引執行與 MAXDOP 索引選項適用於下列 Transact-SQL 陳述式:

    • 建立索引

    • ALTER 索引重建

    • DROP INDEX(該操作僅適用於叢集索引。)

    • ALTER TABLE ADD (index)約束條件

    • ALTER TABLE DROP (叢集索引) CONSTRAINT

  • ALTER INDEX REORGANIZE 語句中不能指定 MAXDOP 索引選項。

  • 如果查詢優化器將平行處理原則的程度套用至建置作業,則需要排序之數據分割索引作業的記憶體需求可能會更大。 平行處理原則的程度愈高,所需的記憶體就愈大。 如需詳細資訊,請參閱< Partitioned Tables and Indexes>。

安全

權限

需要擁有對資料表或檢視表的 ALTER 權限。

使用 SQL Server Management Studio

若要在索引上設定最大的平行度

  1. 在 [物件總管] 中,按一下加號以展開包含欲設定索引最大平行處理度的資料表的資料庫。

  2. 展開 [資料表] 資料夾。

  3. 按一下加號以展開您要為索引設定最大平行運作度的資料表。

  4. 展開 [索引] 資料夾。

  5. 以滑鼠右鍵按一下您要設定最大平行度的索引,然後選取 [屬性]

  6. [選取頁面] 底下,選取 [選項]

  7. 選取 [平行處理原則的最大程度],然後輸入介於 1 和 64 之間的一些值。

  8. 按一下 [確定]

使用 Transact-SQL

若要設定現有索引的最大平行度

  1. 物件總管中,連線到資料庫引擎實例。

  2. 在標準列上,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行]

    USE AdventureWorks2012;   
    GO  
    /*Alters the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table so that, if the server has eight or more processors, the Database Engine will limit the execution of the index operation to eight or fewer processors.  
    */  
    ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor  
    REBUILD WITH (MAXDOP=8);   
    GO  
    

如需詳細資訊,請參閱 ALTER INDEX (Transact-SQL)

在新索引上設定平行處理原則的最大程度

  1. 物件總管中,連線到資料庫引擎實例。

  2. 在標準列上,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行]

    USE AdventureWorks2012;  
    GO  
    CREATE INDEX IX_ProductVendor_NewVendorID   
    ON Purchasing.ProductVendor (BusinessEntityID)  
    WITH (MAXDOP=8);  
    GO  
    

如需更多資訊,請參閱 CREATE INDEX (Transact-SQL)