伺服器配置選項 lightweight pooling 控制 SQL Server 執行個體是使用 Windows 線程還是纖程。此選項的預設值是 0。這表示 SQL Server 執行個體為每個背景工作執行緒計劃一個 Windows 線程,背景工作執行緒數不超過 max worker threads 選項中設定的值。如果 lightweight pooling 設定為 1,SQL Server 將使用纖程而不是 Windows 線程。這稱為在Fiber 模式下運行。在Fiber 模式下,SQL Server 執行個體為每個 SQL 排程器分配一個 Windows 線程,然後為每個背景工作執行緒分配一個纖程,背景工作執行緒數不超過 max worker threads 選項中設定的值。SQL Server 執行個體使用 Windows 線程或纖程時都使用相同的演算法計劃和同步任務。SQL Server Express 不支援纖程。
使用 lightweight pooling 選項可以減少有時在對稱式多處理 (SMP) 環境下遇到的、與過多的環境切換有關的系統開銷。如果出現過多的環境切換,輕型池可以通過環境切換內聯化,從而降低使用者/核心環的轉換頻率,達到提高輸送量的目的。
將 lightweight pooling 設定為 1 將使 Microsoft SQL Server 切換到Fiber 模式計劃。該選項的預設值為 0。
lightweight pooling 選項是一個進階選項。如果使用 sp_configure 系統預存程序來更改該設定,則只有在 show advanced options 設定為 1 時才能更改 lightweight pooling。該設定在重新啟動伺服器後生效。
切換線程內容相關的開銷不是很大。SQL Server 的大多數執行個體不會發現 lightweight pooling 選項設定為 0 或 1 時效能有何差別。只有運行在具有下列特徵的電腦上的 SQL Server 執行個體可能從 lightweight pooling 受益:
大型多 CPU 伺服器。
所有 CPU 以接近最大容量運行。
存在進階別的環境切換。
如果 lightweight pooling 的值設為 1,則可能會略微提高這些系統的效能。
設定lightweight pooling的方法(此處為關閉執行個體,開啟方法只需將 0 改 位 1):
sp_configure ‘allow updates’,’1′goreconfigure with overridegosp_configure ‘lightweight pooling’,’0′gosp_configure ‘allow updates’,’0′gonet stop mssqlservernet start mssqlserver