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