平行查詢處理

更新: 2005 年 12 月 5 日

SQL Server 2005 提供平行查詢,讓擁有多個處理器 (CPU) 的電腦,也能獲得最佳的查詢執行和索引作業。因為 SQL Server 可利用數個作業系統執行緒平行地執行查詢或索引作業,所以可快速而有效率地完成作業。

在查詢最佳化期間,SQL Server 會搜尋得益於平行執行的查詢或索引作業。對於這些查詢,SQL Server 會在查詢執行計劃中插入交換運算子,以準備平行執行的查詢。所謂的交換運算子,是指查詢執行計劃中,提供存取管理、資料重新散佈以及流量控制的運算子。交換運算子包括 Distribute StreamsRepartition StreamsGather Streams 邏輯運算子作為子類型,其中一或多個可能出現在平行查詢之查詢計劃的顯示計劃輸出中。

插入交換運算子之後,結果便是平行查詢執行計劃。平行查詢執行計劃可以使用一個以上的執行緒。非平行查詢所使用的序列執行計劃,執行時只會使用一個執行緒。平行查詢實際所使用的執行緒數目,是在查詢計劃執行初始化時,由計劃的複雜度與平行處理原則的程度決定。平行處理原則的程度決定將要使用的 CPU 最大數目,而不是將要使用的執行緒數目。平行處理原則的程度值是在伺服器層級設定,可以使用 sp_configure 系統預存程序修改。您可以指定 MAXDOP 查詢提示或 MAXDOP 索引選項,來覆寫個別查詢或索引陳述式的這個值。

如果下列任何條件為真,則 SQL Server 查詢最佳化工具不使用平行執行計劃進行查詢:

  • 查詢的序列執行成本不夠高,無法考量替代平行執行計劃。
  • 序列執行計劃被認為比特定查詢之任何可能的平行執行計劃更快。
  • 此查詢包含無法平行執行的純量或關聯式運算子。特定運算子可能造成查詢計劃的一個區段以序列模式執行,或整個計劃以序列模式執行。

請參閱

概念

平行程度
平行查詢範例
平行索引作業
max degree of parallelism 選項
設定平行索引作業
設定索引選項

其他資源

sp_configure (Transact-SQL)
查詢提示 (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2005 年 12 月 5 日

新增內容:
  • 新增有關查詢最佳化工具何時不使用平行執行計劃的資訊。