新聞中心
SQL SERVER線程和纖程都是非常重要的,下面就為將為您分析SQL SERVER線程和纖程的區(qū)別,在了解區(qū)別之前,先讓我們認(rèn)識一下什么是線程和纖程。

公司專注于為企業(yè)提供做網(wǎng)站、成都做網(wǎng)站、微信公眾號開發(fā)、購物商城網(wǎng)站建設(shè),微信平臺小程序開發(fā),軟件按需開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗,我們會仔細(xì)了解各客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。
一、基本概念
(一)線程
SQL SERVER使用操作零碎的線程來執(zhí)行并發(fā)任務(wù)。在不使用纖程的情況下,SQL SERVER將啟動線程,并由OS將線程分配給CPU,線程管理由OS內(nèi)核控制,當(dāng)一個線程完成退出CPU,其他線程調(diào)度占用該CPU時,將發(fā)生一個上下文切換,這個切換是在應(yīng)用程序的用戶模式和線程管理的內(nèi)核模式之間的切換,所以需要付出一定的代價,應(yīng)當(dāng)盡量避免這種切換
(二)纖程
為了減少上下文切換,引入纖程的概念,可以在SQL SERVER中啟用纖程,纖程是線程的子模塊,纖程由運行在用戶模式下的代碼管理,所以切換纖程比切換進(jìn)程的代價少的多,因為纖程模式不需要在將用戶模式和內(nèi)核模式中切換,而切換線程則需要這種轉(zhuǎn)換。
(三)兩者的區(qū)別
SQL SERVER管理纖程的調(diào)度,而OS管理線程的調(diào)度;線程模式里SQL SERVER為每個并發(fā)用戶創(chuàng)建配一個線程,而纖程模式中 SQL SERVER為每個CPU分配一個線程,并為每個并發(fā)用戶創(chuàng)建配一個纖程,一個線程中可以有多個纖程,纖程只在線程里切換,不用上下文切換 。
注意:SQL SERVER PERSONAL EDITION和 DESKTOP EDITION不支持纖程模式;WIN95,98不支持線程池
二、SQL SERVER對線程和纖程的管理
SQL SERVER既可以為用戶連接維護(hù)一個線程池,也可以維護(hù)一個纖程池(如果設(shè)置了纖程模式,則零碎只維護(hù)纖程池,不在是線程池)在連接池中,線程和纖程都看作工作纖程,并可以由MAX WORKER THREADS 選項來設(shè)置SQL SERVER可分配的線程或纖程的***數(shù)目,一般采用默認(rèn)值255 。
當(dāng)一個語句需要SQL SERVER執(zhí)行時:
(1)如果線程池里用空閑的線程,SQL SERVER將為該語句分配一個線程
(2)如果線程池中沒有可供使用的空閑線程并且沒有達(dá)到***工作線程數(shù)量,SQL SERVER將為該命令創(chuàng)建新的工作線程
(3)如果到了***線程使用數(shù)量并且沒有空閑的線程,則進(jìn)程必須等待其他處理完成后釋放一個線程
【編輯推薦】
SQL Server同步復(fù)制的實現(xiàn)方法
SQL Server的并發(fā)控制介紹
深入解析SQL Server動態(tài)管理對象
SQL Server管理工具的升級方法
SQL SERVER連接DB2數(shù)據(jù)庫
分享題目:SQLSERVER線程和纖程的區(qū)別
轉(zhuǎn)載源于:http://www.5511xx.com/article/coesogj.html


咨詢
建站咨詢
