SQL Server 2008配置並行索引操作
在執行 SQL Server Enterprise 的多處理器計算機上,索引語句可能會像其他查詢那樣,使用多個處理器來執行與索引語句關聯的掃描、排序和索引操作。用於執行單個索引語句的處理器數是由配置選項 max degree of parallelism、當前工作負荷以及索引統計資訊決定的。max degree of parallelism 選項決定了執行並行計劃時使用的最大處理器數。如果 SQL Server 資料庫引擎檢測到系統忙,索引操作的並行度將自動降低,然後再開始執行語句。如果非分割槽索引的第一個鍵列包含有限數量的非重複值,或者每個非重複值的出現頻率變化較大,資料庫引擎也可能會降低並行度。
注意:
並行索引操作僅在 SQL Server Enterprise Edition、Developer Edition 和 Evaluation 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。假設伺服器有八個或更多處理器,資料庫引擎會將執行索引操作時使用的處理器數量限制為八個或少於八個。
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-515885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 2008為索引操作選擇恢復模式SQLServer索引模式
- SQL Server 2008 建立非聚集索引SQLServer索引
- SQL SERVER 2008安全配置SQLServer
- SQL Server 2008稽核操作組和操作SQLServer
- SQL Server 2008 非聚集索引設計SQLServer索引
- SQL中並行操作SQL並行
- 關於SQL Server 2008的缺失索引功能SQLServer索引
- SQL Server 2008 表和索引的行壓縮和頁壓縮SQLServer索引
- SQL Server 2008篩選索引設計準則SQLServer索引
- PHP操作SQL Server 2008/2012PHPSQLServer
- 理解SQL Server 2008索引的儲存結構YDSQLServer索引
- SQL Server 2008 R2並行資料倉儲簡介SZSQLServer並行
- SQL Server索引 - 非聚集索引SQLServer索引
- SQL Server 2008配置拓撲(對等複製)SQLServer
- SQL Server 2008配置對等事務複製SQLServer
- 理解和使用SQL Server中的並行SQLServer並行
- 用並行查詢讓SQL Server加速執行並行SQLServer
- SQL Server 索引結構SQLServer索引
- 最佳SQL Server索引策略SQLServer索引
- SQL Server如何配置cdc進行ETLSQLServer
- SQL Server 2008 win7配置問題彙總SQLServerWin7
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- Oracle並行操作——並行DML操作Oracle並行
- SQL Server 2008中的行壓縮(上)JUSQLServer
- SQL Server 2008 引數化行篩選器SQLServer
- 淺談SQL Server 2008中的行壓縮SQLServer
- Sql Server系列:索引維護SQLServer索引
- Sql Server系列:索引基礎SQLServer索引
- SQL Server基礎之索引SQLServer索引
- 建立索引——提高SQL Server效能索引SQLServer
- SQL Server 資料庫索引SQLServer資料庫索引
- SQL Server 深入解析索引儲存(聚集索引)SQLServer索引
- SQL Server 2008 過期SQLServer
- 安裝sql server 2008SQLServer
- SQL Server 2008 安全更改SQLServer
- 微軟之日 --- SQL Server 2008微軟SQLServer
- 比較SQL Server 2008資料庫引擎優化和索引優化SQLServer資料庫優化索引
- SQL Server 2008進行備份事務日誌SQLServer