新聞中心
以下文章主要是介紹SQL Server線程和SQL Server纖程的概念以及對兩者在實際操作中的不同之處與SQL Server數(shù)據(jù)庫對線程與纖程的實際管理的描述,以下就是文章的主要內(nèi)容的詳細解析,望大家會對其有更好的了解。

創(chuàng)新互聯(lián)公司于2013年開始,公司以成都網(wǎng)站建設(shè)、成都做網(wǎng)站、系統(tǒng)開發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶1000多家,涉及國內(nèi)多個省份客戶。擁有多年網(wǎng)站建設(shè)開發(fā)經(jīng)驗。為企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計、宣傳推廣等服務(wù)。 通過專業(yè)的設(shè)計、獨特的風格,為不同客戶提供各種風格的特色服務(wù)。
(一)SQL Server線程
SQL Server 使用操作系統(tǒng)的線程來執(zhí)行并發(fā)任務(wù)。在不使用纖程的情況下,SQL Server將啟動線程,并由OS將線程分配給cpu,線程管理由OS內(nèi)核控制,當一個線程完成退出CPU,其他線程調(diào)度占用該CPU時,將發(fā)生一個上下文切換,這個切換是在應(yīng)用程序的用戶模式和線程管理的內(nèi)核模式之間的切換,所以需要付出一定的代價,應(yīng)當盡量避免這種切換
(二)纖程
為了減少上下文切換,引入纖程的概念,可以在SQL Server中啟用纖程,纖程是線程的子模塊,纖程由運行在用戶模式下的代碼管理,所以切換纖程比切換進程的代價少的多,因為纖程模式不需要在將用戶模式和內(nèi)核模式中切換,而切換線程則需要這種轉(zhuǎn)換。
(三)兩者的區(qū)別
SQL Server管理纖程的調(diào)度,而OS管理線程的調(diào)度;線程模式里 SQL Server為每個并發(fā)用戶創(chuàng)建配一個SQL Server線程,而纖程模式中 SQL Server為每個CPU分配一個線程,并為每個并發(fā)用戶創(chuàng)建配一個纖程,一個線程中可以有多個纖程,纖程只在線程里切換,不用上下文切換
注意:SQL Server Personal Edition和 Desktop Edition不支持纖程模式;Win95,98不支持線程池
二、SQL Server對線程和纖程的管理
SQL Server既可以為用戶連接維護一個線程池,也可以維護一個纖程池(如果設(shè)置了纖程模式,則系統(tǒng)只維護纖程池,不在是線程池) 在連接池中,線程和纖程都看作工作纖程,并可以由max worker threads 選項來設(shè)置SQL Server可分配的SQL Server線程或纖程的***數(shù)目,一般采用默認值255 。
當一個語句需要SQL Server執(zhí)行時:
(1)如果線程池里用空閑的線程,SQL Server將為該語句分配一個線程
(2)如果線程池中沒有可供使用的空閑線程并且沒有達到***工作SQL Server線程數(shù)量,SQL Server將為該命令創(chuàng)建新的工作線程
(3)如果到了***線程使用數(shù)量并且沒有空閑的線程,則進程必須等待其他處理完成后釋放一個線程
【編輯推薦】
- SQL Server評價索引之有效性
- SQL Server索引選擇的引用與建議
- SQL Server索引的正確使用標準是啥樣?
- 三種SQL Server查找數(shù)據(jù)方法的比較
- SQL Server 索引底層實現(xiàn)的注意事項
分享標題:SQLServer線程和纖程的概念與實際操作區(qū)別
網(wǎng)頁路徑:http://fisionsoft.com.cn/article/ccojohh.html


咨詢
建站咨詢
