日前網站在忙碌時發生了下面這個錯誤
32位元系統 : max_workers_count = 256 + ((cpu_count – 4) * 8)
64位元系統 : max_workers_count = 512 + ((cpu_count – 4) * 16)
如果cpu數小於4,那max worker threads分別會依系統位元數設於256/516,若是SQL 2000,max worker threads則會固定設在255。
你可以用下面的指令去看目前設定的相關資訊
要解決這問題,有兩個方式,一個是去調高max worker threads,一個是去縮減SQL連線。
The query processor could not start the necessary thread resources for parallel query execution.會出現這問題,是因為MSSQL server 的 worker threads 不夠用了,一般來說worker threads預設為0,讓SQL依作業系統與核心去設定worker threads,其算法如下。
32位元系統 : max_workers_count = 256 + ((cpu_count – 4) * 8)
64位元系統 : max_workers_count = 512 + ((cpu_count – 4) * 16)
如果cpu數小於4,那max worker threads分別會依系統位元數設於256/516,若是SQL 2000,max worker threads則會固定設在255。
你可以用下面的指令去看目前設定的相關資訊
select COUNT(1) from sys.dm_os_threads select max_workers_count,cpu_count From sys.dm_os_sys_info
要解決這問題,有兩個方式,一個是去調高max worker threads,一個是去縮減SQL連線。