日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQL體系結(jié)構(gòu)之SQLServer線程管理

對于SQLServer線程管理,可能很多剛剛接觸SQL數(shù)據(jù)庫的新人都比較陌生,下面就為您詳細(xì)介紹SQLServer線程管理,希望對您學(xué)習(xí)SQLServer線程管理方面能有所幫助。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、分宜網(wǎng)站維護(hù)、網(wǎng)站推廣。

復(fù)雜的應(yīng)用具有多個需要同步完成的任務(wù)或處理過程。一個進(jìn)程具有一個執(zhí)行線程,執(zhí)行應(yīng)用的程序指令。我們將這個執(zhí)行線程簡稱為線程(thread)。SQLServer使用WindowsNT操作系統(tǒng)的線程,有時是SQLServer的纖維(見下面的討論),執(zhí)行并發(fā)任務(wù)(微軟的SQLServer桌面版不支持纖維)。線程由SQLServer啟動,然后WindowsNT在SQLServer可用的多個處理器(CPU)之間平均地分配線程??梢酝ㄟ^企業(yè)管理器,或通過設(shè)置SQLServer的配置參數(shù)affinitymask來配置SQLServer可以使用的處理器的數(shù)量。

大多數(shù)系統(tǒng)通過允許SQLServer使用系統(tǒng)中的所有CPU,工作得***。一個線程一個時間可以在系統(tǒng)的一個CPU上執(zhí)行。例如,具有四個CPU的系統(tǒng)可以并發(fā)執(zhí)行四個線程。當(dāng)一個線程可能處于等待I/O操作完成的狀態(tài)時,另一個線程可以運行在相同的CPU上,即使在一個單CPU的系統(tǒng)中,也是如此。這樣一來增加了可以執(zhí)行的工作量。線程的管理是由WindowsNT核心代碼維護(hù)的。當(dāng)一個線程移出一個CPU,另一個線程移入CPU時,發(fā)生一次環(huán)境切換(contextswitch)。環(huán)境切換是一個相當(dāng)耗時的操作,因為它需要在應(yīng)用代碼的用戶模式與SQLServer線程管理代碼的核心模式之間進(jìn)行切換,因此,設(shè)備環(huán)境切換越少越好。為減少環(huán)境切換,SQLServer具有一個稱為纖維(fibers)的新特性。

纖維是線程的子部件,缺省情況下,SQLServer并不使用纖維,但可以通過配置讓SQLServer使用纖維。纖維由運行在用戶模式的代碼來維護(hù),因此,切換纖維比起切換線程的操作來,并不耗時,因為不需要在核心模式與用戶模式之間改變模式。纖維的調(diào)度表由SQLServer維護(hù),而線程的調(diào)度表由WindowsNT維護(hù);多個纖維可以運行在同一個線程上,并且纖維可以在線程中進(jìn)行切換,而此時在CPU上執(zhí)行的線程不用切換環(huán)境。這樣大大降低了系統(tǒng)上的環(huán)境切換次數(shù)。如果你的系統(tǒng)執(zhí)行了許多環(huán)境切換,試試以纖維模式運行SQLServer。要這樣做,必須通過企業(yè)管理器選擇該選項,或者運行sp_configure并設(shè)置lightweightpooling(輕型池)參數(shù),它也是一個高級選項。

SQLServer維護(hù)線程池以執(zhí)行SQL語句。如果設(shè)置了纖維模式,將維護(hù)纖維池而不是線程池。池中的線程或纖維,稱為工作者線程(workerthread)。當(dāng)在同一時間執(zhí)行多條SQL語句時,工作者線程池允許SQLServer更好地分配CPU的處理時間。也可以使用配置參數(shù)maxworkerthreads(***工作者線程)配置SQLServer可用的工作者線程的數(shù)量,***值為255(可以通過企業(yè)管理器配置,或使用sp_configure存儲過程配置)。

當(dāng)發(fā)送一條SQL語句或一批語句給SQLServer執(zhí)行時,如果池中存在空閑線程,SQLServer為該語句或批語句分配一個工作者線程;如果沒有現(xiàn)存的空閑線程,并且尚未達(dá)到***工作者線程數(shù),SQLServer將為這個處理啟動一個新的線程;如果達(dá)到了***線程數(shù),并且沒有空閑線程,處理必須等待另一個批處理完成它的任務(wù)并釋放一個線程,這種等待通常時間不會太長。如果發(fā)現(xiàn)一個已達(dá)到***工作者線程限制的SQLServer錯誤,可以嘗試一下增大該參數(shù)值。然而,千萬記住,允許創(chuàng)建過多的線程會導(dǎo)致更多的開銷,最終會降低性能。


本文名稱:SQL體系結(jié)構(gòu)之SQLServer線程管理
本文鏈接:http://www.dlmjj.cn/article/djcgecj.html