SQL Server數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

服務(wù)器結(jié)構(gòu)

SQL Server服務(wù)器可以看成是由實(shí)例及數(shù)據(jù)庫(kù)構(gòu)成。實(shí)例包括SQL Server占用的內(nèi)存及后臺(tái)線程炒刁。
??與Oracle顯著不同的是,SQL Server服務(wù)器的數(shù)據(jù)庫(kù)是多個(gè),其中包括5個(gè)系統(tǒng)數(shù)據(jù)庫(kù)及若干個(gè)用戶數(shù)據(jù)庫(kù)(其中的resource數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)數(shù)據(jù),對(duì)用戶不可見)唱遭。每個(gè)數(shù)據(jù)庫(kù)包括數(shù)據(jù)文件及重做日志文件,SQL Server數(shù)據(jù)庫(kù)不包含控制文件视事。

Oracle服務(wù)器 = 一個(gè)Oracle實(shí)例+一個(gè)數(shù)據(jù)庫(kù)
SQL Server服務(wù)器 = 一個(gè)SQL Server實(shí)例+多個(gè)數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)相關(guān)文件

SQL Server的數(shù)據(jù)庫(kù)文件包括:

  • 數(shù)據(jù)文件:存放數(shù)據(jù)庫(kù)中的數(shù)據(jù)胆萧。
  • 重做日志文件:存放用戶對(duì)數(shù)據(jù)庫(kù)的操作記錄,用于實(shí)例恢復(fù)或介質(zhì)恢復(fù)俐东。

SQL Server中的數(shù)據(jù)文件
??數(shù)據(jù)文件與重做日志文件的作用與Oracle對(duì)應(yīng)的文件相同,只是SQL Server的重做日志文件除了包含重做數(shù)據(jù)外订晌,還包含回滾事務(wù)所用的undo數(shù)據(jù)虏辫,Oracle的重做日志文件只包含重做數(shù)據(jù),undo數(shù)據(jù)存儲(chǔ)在undo表空間锈拨。

SQL Server中的“控制文件”
??SQL Server沒有控制文件砌庄,實(shí)例中的各個(gè)數(shù)據(jù)庫(kù)文件信息存儲(chǔ)在master系統(tǒng)數(shù)據(jù)庫(kù)以及用戶數(shù)據(jù)庫(kù)的primary文件組的主數(shù)據(jù)文件中。

SQL Server中的“初始化參數(shù)文件”
??SQL Server沒有初始化參數(shù)文件(初始化參數(shù)文件用于保存實(shí)例啟動(dòng)及運(yùn)行時(shí)各種參數(shù)配置)奕枢,實(shí)例的配置信息保存在master系統(tǒng)數(shù)據(jù)庫(kù)中娄昆,數(shù)據(jù)庫(kù)的配置信息保存在各自數(shù)據(jù)庫(kù)的primary文件組的主數(shù)據(jù)文件中。

SQL Server中的“口令文件”
??Oracle中的口令文件保存sys用戶及具備sysdba系統(tǒng)權(quán)限的用戶的口令缝彬,其他用戶的口令保存在數(shù)據(jù)庫(kù)中萌焰,這是因?yàn)閟ys用戶除了在數(shù)據(jù)庫(kù)中擁有管理權(quán)限外,還擁有啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)等特殊權(quán)限谷浅,如果sys用戶的口令也與其他用戶的口令一樣存儲(chǔ)在數(shù)據(jù)庫(kù)中扒俯,顯然在數(shù)據(jù)庫(kù)打開之前,就無法驗(yàn)證其口令的正確性一疯。但是SQL Server沒有口令文件撼玄,啟動(dòng)SQL Server各種服務(wù)都是由操作系統(tǒng)行號(hào)完成的,其口令由操作系統(tǒng)維護(hù)墩邀。

歸檔日志文件
??SQL Server沒有歸檔日志文件掌猛,Oracle歸檔日志的功能通過事務(wù)日志文件備份實(shí)現(xiàn)。

SQL Server中的錯(cuò)誤日志
??Oracle中的警告文件記錄著數(shù)據(jù)庫(kù)運(yùn)行的信息眉睹,根據(jù)這個(gè)文件我們可以知道發(fā)生了什么內(nèi)部錯(cuò)誤荔茬,什么時(shí)候創(chuàng)建了表空間废膘,什么時(shí)候把表空間或數(shù)據(jù)文件脫機(jī)、聯(lián)機(jī)兔院,數(shù)據(jù)庫(kù)啟動(dòng)關(guān)閉等信息殖卑。出現(xiàn)錯(cuò)誤時(shí),如果不能確定原因坊萝,應(yīng)該首先查看經(jīng)該文件的內(nèi)容孵稽,以得到解決問題的線索,警告文件從數(shù)據(jù)庫(kù)創(chuàng)建開始一直到被刪除十偶。Oracle數(shù)據(jù)庫(kù)的警告文件在SQL Server中稱為錯(cuò)誤日志(Errorlog)菩鲜,是實(shí)例范圍的,而不是針對(duì)某個(gè)數(shù)據(jù)庫(kù)的惦积,與Oracle的警告文件類似接校,由SQL Server錯(cuò)誤日志可以查看在實(shí)例運(yùn)行過程中出現(xiàn)的錯(cuò)誤。SQL Server的錯(cuò)誤日志文件的位置為:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log狮崩。
??注意區(qū)分這里的SQL Server錯(cuò)誤日志與數(shù)據(jù)庫(kù)重做日志文件蛛勉,SQL Server錯(cuò)誤日志時(shí)文本文件,是提供給數(shù)據(jù)庫(kù)管理員用來查看服務(wù)器運(yùn)行過程中的問題的睦柴,SQL Server數(shù)據(jù)庫(kù)正常運(yùn)行并不需要錯(cuò)入日志文件诽凌,而數(shù)據(jù)庫(kù)的重做日志文件是數(shù)據(jù)庫(kù)必須的,其目的是為了在出現(xiàn)故障時(shí)坦敌,恢復(fù)數(shù)據(jù)庫(kù)侣诵。
??服務(wù)器啟動(dòng)時(shí),會(huì)創(chuàng)建新的錯(cuò)誤日志文件ERRORLOG狱窘,上一次的ERRORLOG被重命名為ERRORLOG.1杜顺,ERRORLOG.1被重命名為ERRORLOG.2,依次類推蘸炸,一直到ERRORLOG.5躬络,被重命名為ERRORLOG.6,而ERRORLOG.6被刪除幻馁,這樣洗鸵,錯(cuò)誤日志最多保留6個(gè)備份。執(zhí)行sp_cycle_errorlog系統(tǒng)存儲(chǔ)過程可以自動(dòng)創(chuàng)建新的ERROR文件并執(zhí)行上述修改名稱的過程仗嗦,而不必重啟服務(wù)器膘滨。
??可以使用任何文本編輯器在操作系統(tǒng)上查看其內(nèi)容,也可以在Management Studio中通過“管理——>SQL Server日志”查看其內(nèi)容稀拐,如下圖所示火邓。

內(nèi)存結(jié)構(gòu)

1.內(nèi)存構(gòu)成


??SQL Server的內(nèi)存主要由兩部分構(gòu)成:buffer cache及其他部分。
??buffer cache也稱為buffer pool,是SQL Server占用內(nèi)存的主要部分铲咨,其作用類似于Oracle的SGA躲胳。buffer cache中的主要部分為data cache,相當(dāng)于Oracle實(shí)例SGA中的database buffer cache部分纤勒,用于存放由磁盤讀取的數(shù)據(jù)坯苹,再次讀取時(shí)不必從磁盤讀取。一般情況下摇天,這是buffer cache中最大的一個(gè)區(qū)域粹湃。
??buffer cache中的另外一個(gè)重要部分為plan cache,用于存放編譯過的執(zhí)行計(jì)劃泉坐,相當(dāng)于Oracle實(shí)例shared pool中的library cache部分为鳄。

2.配置內(nèi)存大小
??與SQL Server內(nèi)存分配相關(guān)的服務(wù)器參數(shù)有兩個(gè):

  • max server memory:設(shè)置buffer cache的上限
  • min server memory:設(shè)置SQL Server可以釋放內(nèi)存的buffer cache下限。

max server memory的默認(rèn)設(shè)置為2 147 483 647腕让,min server memory的默認(rèn)設(shè)置為0孤钦,可以為max server memory指定的最小內(nèi)存量為16MB。默認(rèn)情況下纯丸, SQL Server 的內(nèi)存要求會(huì)根據(jù)可用系統(tǒng)資源的情況動(dòng)態(tài)變化偏形。

將 max server memory 設(shè)置為最小值可能會(huì)嚴(yán)重降低 SQL Server 性能,甚至導(dǎo)致無法啟動(dòng)觉鼻。 如果在更改此選項(xiàng)之后無法啟動(dòng) SQL Server 壳猜,請(qǐng)使用 –f 啟動(dòng)選項(xiàng)啟動(dòng)它,并將 max server memory 重置為以前的值滑凉。

下面是設(shè)置這兩個(gè)參數(shù)的方法。
??先執(zhí)行以下兩個(gè)命令:

#先開啟高級(jí)選項(xiàng)
SP_CONFIGURE 'show advanced options',1
#然后執(zhí)行
RECONFIGURE WITH OVERRIDE

執(zhí)行以上兩個(gè)命令之后才能使用命令行進(jìn)行參數(shù)配置喘帚。
??配置max server memory的值為500MB:

1> sp_configure 'max server memory','500'
2> go
配置選項(xiàng) 'max server memory (MB)' 已從 2147483647 更改為 500畅姊。請(qǐng)運(yùn)行 RECONFIGURE 語句進(jìn)行安裝。
1> reconfigure
2> go

配置min server memory的值為300MB:

1> sp_configure 'min server memory','300'
2> go
配置選項(xiàng) 'min server memory (MB)' 已從 0 更改為 300吹由。請(qǐng)運(yùn)行 RECONFIGURE 語句進(jìn)行安裝若未。
1> reconfigure
2> go

也可以使用SQL Server Management Studio 配置內(nèi)存選項(xiàng):
1.在對(duì)象資源管理器中,右鍵單擊“服務(wù)器”并選擇“屬性”倾鲫。
2.單擊 “內(nèi)存” 節(jié)點(diǎn)粗合。
3.在 “服務(wù)器內(nèi)存選項(xiàng)”中,為 “最小服務(wù)器內(nèi)存” 和 “最大服務(wù)器內(nèi)存”輸入所需的內(nèi)存量乌昔。



??而對(duì)于具體的SQL Server如何使用內(nèi)存隙疚,例如分配給執(zhí)行計(jì)劃緩存多少,分配給數(shù)據(jù)buffer多少磕道,這些都無法通過配置進(jìn)行調(diào)控供屉。
??一般情況下,SQL Server的內(nèi)存分配不需要用戶干預(yù),SQL Server盡力做到獲得盡量多的內(nèi)存伶丐,又不會(huì)使系統(tǒng)出現(xiàn)內(nèi)存短缺現(xiàn)象悼做。
??SQL Server在啟動(dòng)時(shí),根據(jù)當(dāng)前負(fù)荷分配必要的內(nèi)存數(shù)量哗魂,這個(gè)數(shù)量可能小于min server memory的值肛走,如果負(fù)荷一直不大,其內(nèi)存占用可能在很長(zhǎng)時(shí)間內(nèi)不會(huì)到達(dá)min server memory的值录别。
??運(yùn)行過程中朽色,SQL Server會(huì)隨著負(fù)荷及用戶連接數(shù)的增長(zhǎng)繼續(xù)分配內(nèi)存,直到內(nèi)存總量達(dá)到max server memory值庶灿,或者操作系統(tǒng)提示內(nèi)存短缺為止纵搁。
??當(dāng)SQL Server占用的內(nèi)存超過min server memory的值,而且Windows系統(tǒng)因?yàn)槠渌麘?yīng)用的運(yùn)行提示空閑內(nèi)存缺少時(shí)往踢,SQL Server會(huì)釋放內(nèi)存腾誉,但會(huì)保持內(nèi)存不低于min server memory的值,當(dāng)這些應(yīng)用退出時(shí)峻呕,SQL Server又會(huì)獲取更多的內(nèi)存利职。在一秒鐘之內(nèi),SQL Server可以釋放或獲取幾兆字節(jié)的內(nèi)存瘦癌。
??如果SQL Server占用的內(nèi)存尚未達(dá)到min server memory的值猪贪,則這些內(nèi)存會(huì)一直保持,而不會(huì)釋放。
??如果max server memory與min server memory配置為相同的值,內(nèi)存占用量達(dá)到這個(gè)后湾戳,不會(huì)繼續(xù)分配也不會(huì)釋放愤钾,這種方式可以使SQL Server占用固定數(shù)量的內(nèi)存。
??另外要注意,SQL Server占用的內(nèi)存總量可能會(huì)超過max server memory值,因?yàn)閙ax server memory只是設(shè)置的buffer cache的上限,除此之外牙寞,SQL Server還需要分配其他功能的內(nèi)存。

主要進(jìn)程(線程)

SQL Server的Lazy Writer與CheckPoint線程是SQL Server的主要線程莫秆。

①Lazy Writer進(jìn)程
??Lazy Writer存在的目的是對(duì)緩沖區(qū)進(jìn)行管理间雀,保證SQL OS 有空閑緩存塊和系統(tǒng)有一定可用內(nèi)存。作用如下:

  • 管理SQLServer空閑內(nèi)存:
    定期檢查空閑緩沖列表的大小镊屎,當(dāng)這個(gè)值過低的時(shí)候惹挟,即當(dāng)data cache的空閑內(nèi)存不夠時(shí),azy Writer搜索data cache杯道,把臟塊寫入磁盤匪煌,并把這些可以重新使用的內(nèi)存頁放入自由列表(free list)责蝠,即會(huì)更新緩存區(qū)空閑可用列表,而將未修改的頁釋放并回收資源萎庭,以增大空間內(nèi)存數(shù)量霜医。
  • 協(xié)調(diào)Windows與SQLServer內(nèi)存
  • 監(jiān)視服務(wù)器內(nèi)存,如果Windows物理內(nèi)存很少驳规,它會(huì)從空閑緩沖列表中釋放內(nèi)存給Windows肴敛;
  • 在SQLServer負(fù)載很重時(shí),它還會(huì)在分配給SQLServer的內(nèi)存沒有達(dá)到最大服務(wù)器內(nèi)存閥值時(shí)吗购,增加空閑緩沖列表的大小医男,以適應(yīng)負(fù)載的需要。也就是Lazy Writer會(huì)縮小或擴(kuò)充data cache的大小捻勉,使得系統(tǒng)空閑內(nèi)存保持在5MB左右镀梭。

②CheckPoint進(jìn)程
??檢查點(diǎn)(CheckPoint)存在的意義是減少服務(wù)器的恢復(fù)時(shí)間(Recovery Time)。檢查點(diǎn)是CheckPoint進(jìn)程創(chuàng)建的踱启,是數(shù)據(jù)庫(kù)的一個(gè)事件报账,也是數(shù)據(jù)庫(kù)恢復(fù)的起始點(diǎn)。
??出于性能方面的考慮埠偿,數(shù)據(jù)庫(kù)引擎對(duì)內(nèi)存中的數(shù)據(jù)庫(kù)頁進(jìn)行修改透罢,但在每次更改后不將這些頁寫入磁盤,相反冠蒋,數(shù)據(jù)庫(kù)引擎定期發(fā)出對(duì)每個(gè)數(shù)據(jù)庫(kù)的檢查點(diǎn)命令將內(nèi)存的臟頁和事務(wù)日志信息刷新到磁盤羽圃,不管臟頁中的數(shù)據(jù)是否已經(jīng)commit。 這樣當(dāng)數(shù)據(jù)庫(kù)發(fā)生崩潰的情況再次重啟時(shí)抖剿,這個(gè)CheckPoint時(shí)間點(diǎn)會(huì)作為數(shù)據(jù)庫(kù)恢復(fù)的起始點(diǎn)朽寞,從而用于重做(redo)的時(shí)間不會(huì)過長(zhǎng),這與Oracle相似斩郎。與Oracle不同愁憔,SQL Server的CheckPoint并不會(huì)起到同步各種文件的作用。
??如下情況都可以觸發(fā)CheckPoint啟動(dòng):

  • 用戶發(fā)出checkpoint命令孽拷;
  • 對(duì)數(shù)據(jù)庫(kù)添加或刪除了文件;
  • 對(duì)大容量日志恢復(fù)模式下數(shù)據(jù)庫(kù)執(zhí)行了大容量操作半抱;
  • 當(dāng)數(shù)據(jù)庫(kù)處于簡(jiǎn)單恢復(fù)模式時(shí)脓恕,如果重做日志文件的數(shù)據(jù)量超過了文件總大小的70%,也會(huì)激發(fā)Checkpoint啟動(dòng)窿侈,在把臟塊寫入磁盤的同時(shí)炼幔,checkpoint會(huì)截?cái)嘀刈鋈罩荆葬尫趴臻g史简。如果重做日志文件的充滿是由于一個(gè)事務(wù)長(zhǎng)時(shí)間未結(jié)束乃秀,則checkpoint不會(huì)啟動(dòng);
  • 當(dāng)SQL Server預(yù)測(cè)的恢復(fù)時(shí)間超過了預(yù)設(shè)的recovery interval的值,也會(huì)激發(fā)checkpoint啟動(dòng)跺讯,recovery interval默認(rèn)為0枢贿,這種情況下,SQL Server自動(dòng)選取一個(gè)合適的值刀脏,一般為1分鐘局荚;
  • 對(duì)數(shù)據(jù)庫(kù)執(zhí)行了備份操作;
  • 正常關(guān)閉SQL Server實(shí)例服務(wù)

Lazy Writer和Checkpoint對(duì)比
??不像Lazy Writer愈污,Checkpoint對(duì)SQL Server的內(nèi)存管理毫無興趣耀态,所以CheckPoint也就意味著在這個(gè)點(diǎn)之前的所有修改都已經(jīng)保存到了磁盤。并且CheckPoint把臟數(shù)據(jù)頁寫入磁盤后暂雹,并不把這些可以再次使用的內(nèi)存數(shù)據(jù)頁放入自由列表首装,即不會(huì)從緩存中移出臟頁,CheckPoint進(jìn)程的工作只是保證臟頁被寫入磁盤杭跪。
??另外還要注意仙逻,并不只是Lazy Writer和Checkpoint執(zhí)行寫磁盤操作,執(zhí)行讀寫任務(wù)的Work線程(這里的Work線程相當(dāng)于Oracle中對(duì)客戶端連接提供服務(wù)的服務(wù)器進(jìn)程)在執(zhí)行相關(guān)操作時(shí)揍魂,也會(huì)檢查data cache的自由列表上的空閑內(nèi)存是否少過桨醋,如果過少的話,它也會(huì)把臟塊寫入磁盤现斋,并把這些內(nèi)存頁放入自由列表喜最。因此Checkpoint啟動(dòng)時(shí),很可能無事可做庄蹋,因?yàn)榘雅K塊寫入磁盤的任務(wù)已經(jīng)被Lazy Writer或Work線程完成了瞬内。

影響檢查點(diǎn)操作持續(xù)時(shí)間的因素
??檢查點(diǎn)的頻率對(duì)于數(shù)據(jù)庫(kù)的恢復(fù)時(shí)間具有極大的影響,如果檢查點(diǎn)的頻率高限书,那么恢復(fù)時(shí)需要應(yīng)用的重做日志就相對(duì)得少虫蝶,檢查時(shí)間就可以縮短。
??但是通常倦西,執(zhí)行檢查點(diǎn)操作所需的時(shí)間會(huì)隨著該操作必須寫入的臟頁數(shù)的增加而增加能真。 默認(rèn)情況下,為最大程度地降低對(duì)其他應(yīng)用程序性能的影響扰柠,SQL Server 將調(diào)整檢查點(diǎn)操作執(zhí)行寫入的頻率粉铐。

SQL Server系統(tǒng)數(shù)據(jù)庫(kù)

系統(tǒng)數(shù)據(jù)庫(kù)包括master、model卤档、msdb蝙泼、tempdb以及resource數(shù)據(jù)庫(kù)。
??①master:保存整個(gè)服務(wù)器的系統(tǒng)信息劝枣,如服務(wù)器配置信息汤踏、登陸賬號(hào)信息织鲸、其他數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)文件信息等。
??②model:是數(shù)據(jù)庫(kù)的模板溪胶,當(dāng)用戶創(chuàng)建新的數(shù)據(jù)庫(kù)時(shí)搂擦,SQL Server復(fù)制model數(shù)據(jù)庫(kù)的結(jié)構(gòu)作為新數(shù)據(jù)庫(kù)的開始,用戶可以修改這個(gè)數(shù)據(jù)庫(kù)的選項(xiàng)設(shè)置载荔,添加新用戶或創(chuàng)建各種數(shù)據(jù)庫(kù)對(duì)象盾饮,以使其他新建的用戶數(shù)據(jù)庫(kù)都具備某些特征。但是用戶不能對(duì)model數(shù)據(jù)庫(kù)添加文件組懒熙,它只包含primary文件組丘损,也不能向primary文件組添加新的數(shù)據(jù)文件,它只能包含一個(gè)主數(shù)據(jù)文件工扎。但用戶可以更改主數(shù)據(jù)文件和重做的大小及其他特征徘钥,如果在建庫(kù)時(shí)未指定文件組及重做文件,則新數(shù)據(jù)庫(kù)主數(shù)據(jù)文件會(huì)繼承model數(shù)據(jù)庫(kù)的主數(shù)據(jù)文件大小肢娘,但是其他如自動(dòng)增長(zhǎng)呈础、最大大小等屬性不會(huì)繼承,新數(shù)據(jù)庫(kù)的重做文件大小及屬性也不會(huì)繼承model數(shù)據(jù)庫(kù)的重做文件的相應(yīng)屬性橱健。
??③msdb:當(dāng)配置了數(shù)據(jù)庫(kù)的自動(dòng)化管理時(shí)而钞,msdb數(shù)據(jù)庫(kù)保存自動(dòng)化作業(yè)的配置信息。
??④tempdb:類似Oracle數(shù)據(jù)庫(kù)的臨時(shí)表空間拘荡,用于保存臨時(shí)表以及數(shù)據(jù)庫(kù)運(yùn)行過程中的排序或散列操作產(chǎn)生的臨時(shí)數(shù)據(jù)臼节。另外tempdb數(shù)據(jù)庫(kù)還保存了用于實(shí)現(xiàn)行版本控制的數(shù)據(jù)(row version store),這些數(shù)據(jù)的功能與Oracle數(shù)據(jù)庫(kù)的undo表空間數(shù)據(jù)類似珊皿。
??⑤resource:保存sys架構(gòu)中的數(shù)據(jù)网缝,主要是數(shù)據(jù)字典數(shù)據(jù)。在Management Studio中蟋定,這個(gè)數(shù)據(jù)庫(kù)不會(huì)顯示出來粉臊,用戶也不能在sqlcmd中使用use resource命令登陸這個(gè)數(shù)據(jù)庫(kù),而只能通過訪問sys架構(gòu)下的對(duì)象間接訪問resource數(shù)據(jù)庫(kù)中的內(nèi)容驶兜。用戶查詢數(shù)據(jù)字典視圖獲得服務(wù)器或數(shù)據(jù)庫(kù)的系統(tǒng)信息扼仲。

客戶端連接的處理模式

對(duì)于客戶端連接,SQL Server只有一種處理模式抄淑,類似于Oracle的共享服務(wù)器模式犀盟。在Oracle共享服務(wù)器模式下,管理員可以手工設(shè)定并發(fā)服務(wù)器進(jìn)程的數(shù)量蝇狼,多個(gè)客戶端連接會(huì)共用一個(gè)服務(wù)器進(jìn)程。在這種模式下倡怎,還會(huì)啟動(dòng)另外的稱為Dispatcher的進(jìn)程迅耘,負(fù)責(zé)把服務(wù)器進(jìn)程分配給客戶端連接贱枣。
??對(duì)應(yīng)于每個(gè)CPU,SQL Server會(huì)啟動(dòng)一個(gè)Scheduler颤专,可以看成是邏輯CPU纽哥。Oracle中處理客戶端連接的服務(wù)器進(jìn)程在SQL Server中稱為Work線程(或纖程),每個(gè)Work線程大約占用0.5MB內(nèi)存栖秕。
??當(dāng)有客戶端請(qǐng)求時(shí)春塌,會(huì)交給當(dāng)前負(fù)荷最低的Scheduler,如果這時(shí)沒有空閑的Work線程簇捍,這個(gè)Scheduler會(huì)啟動(dòng)一個(gè)Work線程來處理這個(gè)請(qǐng)求只壳,當(dāng)一個(gè)Work線程在15分鐘內(nèi)部都處于空閑狀態(tài),Scheduler會(huì)銷毀它以釋放內(nèi)存暑塑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吼句,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子事格,更是在濱河造成了極大的恐慌惕艳,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驹愚,死亡現(xiàn)場(chǎng)離奇詭異远搪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)逢捺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門谁鳍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒸甜,你說我怎么就攤上這事棠耕。” “怎么了柠新?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵窍荧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我恨憎,道長(zhǎng)蕊退,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任憔恳,我火速辦了婚禮瓤荔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钥组。我一直安慰自己输硝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布程梦。 她就那樣靜靜地躺著点把,像睡著了一般橘荠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上郎逃,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天哥童,我揣著相機(jī)與錄音,去河邊找鬼褒翰。 笑死贮懈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的优训。 我是一名探鬼主播朵你,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼型宙!你這毒婦竟也來了撬呢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤妆兑,失蹤者是張志新(化名)和其女友劉穎魂拦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搁嗓,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芯勘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腺逛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荷愕。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖棍矛,靈堂內(nèi)的尸體忽然破棺而出安疗,到底是詐尸還是另有隱情,我是刑警寧澤够委,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布荐类,位于F島的核電站,受9級(jí)特大地震影響茁帽,放射性物質(zhì)發(fā)生泄漏玉罐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一潘拨、第九天 我趴在偏房一處隱蔽的房頂上張望吊输。 院中可真熱鬧,春花似錦铁追、人聲如沸季蚂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扭屁。三九已至透硝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疯搅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工埋泵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留幔欧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓丽声,卻偏偏與公主長(zhǎng)得像礁蔗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雁社,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容