cost threshold for parallelism 選項
使用 cost threshold for parallelism 選項指定 Microsoft SQL Server 為查詢建立及執行平行計畫的臨界值。唯有執行同一查詢的序列計畫的估計成本高於 cost threshold for parallelism 中設定的值時,SQL Server 才會建立及執行查詢的平行計畫。成本是指在特定硬體組態下,執行序列計畫所需估計的經過時間 (以秒為單位)。只有在對稱式多重處理器上才應該設定 cost threshold for parallelism。
通常較長的查詢比較適合平行計畫;其效能優點就是不需要額外的時間來初始化、同步處理及終止平行計畫。在執行混合較短及較長的查詢時,就會啟用 cost threshold for parallelism 選項。較短的查詢執行序列計畫,而較長的查詢使用平行計畫。cost threshold for parallelism 的值可判斷哪些查詢是短的,所以要使用序列計畫來執行。
在某些狀況下,即使查詢的成本計畫小於目前的 cost threshold for parallelism 值,還是會選擇平行計畫。之所以會發生這種情形,是因為在決定要使用平行或序列計畫時,所依據的成本預估值是在完成整體最佳化之前提供的。
cost threshold for parallelism 選項可設成從 0 到 32767 的任何值。預設值是 5。
在下列情況下,SQL Server 會忽略 cost threshold for parallelism 值:
您的電腦只有一個處理器。
因為 affinity mask 組態選項的關係,只有一個 CPU 可供 SQL Server 使用。
max degree of parallelism 選項設為 1。
[!附註]
如果使用 MAXDOP 查詢選項,SQL Server 將不會忽略 cost-threshold-for-parallelism 值。
cost threshold for parallelism 選項是進階選項。若使用 sp_configure 系統預存程序來變更設定,只有當 show advanced options 設為 1 時,才能變更 cost threshold for parallelism。伺服器不需重新啟動,設定即可立刻生效。
範例
以下範例將平行處理原則的成本臨界值設為 10 秒。
sp_configure 'show advanced options', 1;
GO
reconfigure;
GO
sp_configure 'cost threshold for parallelism', 10;
GO
reconfigure;
GO