執行緒和 Fiber 執行

Microsoft Windows 使用數值優先權系統,從 1 到 31 的範圍來排程要執行的執行緒。零是保留給作業系統使用的。當有數個執行緒等待執行時,Windows 會先分派有最高優先順序的執行緒。

根據預設,每個 SQL Server 執行個體的優先權為 7,這稱為一般優先權。這讓 SQL Server 執行緒有夠高的優先權,可以取得足夠的 CPU 資源,而不會影響其他的應用程式。

使用 priority boost 組態選項,可以將 SQL Server 執行個體中執行緒的優先權增加至 13,這稱為高優先權。這個設定讓 SQL Server 執行緒擁有比大部份其他應用程式更高的優先權。因此,每當 SQL Server 執行緒可以執行時,通常系統會先分派執行緒,而且其他應用程式不會預先清空執行緒。當伺服器僅執行 SQL Server 的執行個體、而沒有執行其他應用程式時,可以改善系統的效能。然而,如果 SQL Server 中發生需要大量記憶體的作業,則其他應用程式可能無法擁有夠高的優先權,以預先清空 SQL Server 執行緒。

如果您在電腦上執行多個 SQL Server 執行個體,並且僅提高部份執行個體的優先權,則以一般優先權執行的所有執行個體之效能都將受到影響。另外,如果有開啟 priority boost,就可能會降低伺服器上其他應用程式與元件的效能。因此,它應該在嚴格控制的情況下使用。