快速掌握SQL Server任務排程
每個 SQL Server 例項都有一個內部層,它實現類似於作業系統的環境,用於排程和同步併發任務,而無須呼叫 Windows 核心。這個內部層可以象處理執行緒那樣有效地排程纖程。每個 SQL Server 例項都為使用者連線維護一個執行緒池或纖程池。該池的最大大小由 max worker threads 伺服器配置選項控制。
伺服器配置 lightweight pooling 選項控制 SQL Server 2000 例項是使用執行緒還是纖程。預設情況下,lightweight pooling 的設定為 0,在該設定下 SQL Server 例項對每個併發使用者命令排程一個執行緒,直到到達 max worker threads 的值。如果 lightweight pooling 的設定為 1,那麼 SQL Server 使用纖程而不是執行緒。這稱為以纖程模式執行。在纖程模式下,SQL Server 例項為每個 CPU 分配一個執行緒,然後為每個併發使用者命令分配一個纖程,最大可以達到 max worker threads 的值。SQL Server 例項在使用執行緒或纖程時使用相同的演算法排程和同步任務。SQL Server 2000 個人版和 SQL Server 2000 Desktop Engine 不支援纖程。
SQL 批處理是一組一個或多個 Transact-SQL 語句,由客戶端傳送到 SQL Server 例項作為一個單元執行。SQL Server 例項從客戶端收到批處理時,將每個批處理與工作池中的可用執行緒或纖程相關聯。如果沒有可用執行緒或纖程且未達到 max worker threads 的值,SQL Server 例項將給新批處理分配新執行緒或纖程。如果沒有可用執行緒或纖程但已達到 max worker threads 的值,例項將一直阻塞新批處理直到有執行緒可用。執行緒或纖程與批處理相關聯後將一直保持關聯狀態,直到批處理生成的結果集已全部返回給客戶端。這時,執行緒或纖程被釋放,可以排程到下一個可用批處理。
雖然執行緒和纖程在使用資源方面無足輕重,但它們仍要消耗資源。在有成百上千個使用者連線的系統中,給每個連線分配一個執行緒或纖程所消耗的資源足以降低 SQL Server 的效率。而且沒必要給每個使用者連線分配一個執行緒或纖程,因為大多數連線實際上都花大量時間等待從客戶端接收批處理。SQL Server 例項的工作執行緒池的大小隻需滿足同時在此例項內活動地執行批處理的使用者連線數。保留 max worker threads 的預設值 255 可使 SQL Server 例項有效地將使用者連線對映到許多執行緒或纖程上,這樣不會消耗太多資源。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-557590/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習SQL Server 的任務排程SQLServer
- SQL Server最佳化必備之任務排程SQLServer
- Quartz任務排程快速入門quartz
- 任務排程框架Quartz快速入門!框架quartz
- 快速部署crontab自動排程任務
- 任務排程
- Laravel 任務排程Laravel
- Airflow 任務排程AI
- Spark中資源排程和任務排程Spark
- 一文快速入門任務排程框架-Quartz框架quartz
- 分散式任務排程分散式
- Nucleus PLUS任務排程
- linux 任務排程Linux
- Laravel 服務之任務排程Laravel
- 分散式排程任務-ElasticJob分散式AST
- Spring 指南(排程任務)Spring
- 聊聊PowerJob的任務排程
- 【Spark篇】---Spark資源排程和任務排程Spark
- laravel框架任務排程(定時執行任務)Laravel框架
- LTS分散式任務排程部署分散式
- Linux 定時任務排程Linux
- ZooKeeper分散式任務排程中心分散式
- 獨立任務最優排程
- Oracle任務排程工具學習Oracle
- 分散式任務排程平臺XXL-JOB快速搭建教程分散式
- LiteOS-任務篇-原始碼分析-任務排程函式原始碼函式
- Python任務排程模組APSchedulerPython
- LeetCode 621 任務排程器LeetCode
- 621. 任務排程器 (構造)
- 力扣 621. 任務排程器力扣
- 任務排程的思考和總結
- Java定時任務排程詳解Java
- 深入解讀Quartz任務排程器quartz
- Crontab定時任務排程介紹
- 力扣-621. 任務排程器力扣
- Java 分散式任務排程平臺:PowerJob 快速開始+配置詳解Java分散式
- Aloha:一個分散式任務排程框架分散式框架
- Android 中的定時任務排程Android