執行緒和工作架構
執行緒是一種作業系統功能,可讓應用程式邏輯分成數個並行的執行路徑。當複雜的應用程式有許多可同時執行的工作時,此功能就很有用處。
作業系統執行應用程式的執行個體時,會建立一個稱為處理序的單位來管理這個執行個體。處理序有執行緒。這是應用程式的程式碼所執行的程式化指令序列。例如,如果簡易應用程式中有單一的一組可序列執行的指令,那麼應用程式將僅有一個執行路徑或一個執行緒。較為複雜的應用程式可能會有多個工作,但這些工作可能需要一前一後執行,而不是以序列的方式執行。應用程式可針對每一項工作啟動個別的處理序來達成此目的。不過,啟動處理序是很耗費資源的作業。反之,應用程式可啟動個別的執行緒,這些就比較節省資源。另外,每個執行緒跟那些與處理序相關聯的其他執行緒,可分開排程執行。
執行緒能讓複雜的應用程式,以更有效率的方式來使用 CPU,即使電腦只有一個 CPU。只有一個 CPU 時,一次只能執行一個執行緒。如果有一個執行緒執行不需使用 CPU 的長時間作業,像是磁碟讀寫,另一個執行緒便可以一直執行,直到第一個作業完成為止。由於應用程式可在其他執行緒等待作業完成時執行一些執行緒,所以使 CPU 發揮最大功效。特別是多使用者、需要大量磁碟 I/O 的應用程式 (例如資料庫伺服器) 更是如此。有多個微處理器或 CPU 的電腦,可同時讓每個 CPU 執行一個執行緒。例如,如果一部電腦有 8 個 CPU,就可以同時執行 8 個執行緒。
本章節內容
SQL Server 批次或工作排程
描述執行緒或 Fiber 如何排程來進行批次或工作。配置執行緒給 CPU
描述作業系統如何在一部電腦的各個微處理器之間,平均分散 SQL Server 執行個體的執行緒。同時描述 affinity mask 組態選項。使用 lightweight pooling 選項
描述在哪些狀況下開啟輕量型共用選項可能會有幫助。執行緒和 Fiber 執行
描述執行緒或 Fiber 如何執行,以及描述用來設定執行優先順序的選項。熱新增 CPU
描述 SQL Server 如何支援熱新增 CPU。在超過 64 個 CPU 之電腦上執行 SQL Server 的最佳作法
提供在超過 64 個 CPU 的電腦上執行 SQL Server 執行個體時的最佳作法資訊。