FocusBI: SQL Server內(nèi)核

了解SQL Server 內(nèi)部組件是如何運(yùn)作對(duì)學(xué)習(xí)BI是非常有幫助的,它是BI數(shù)據(jù)的主要來源犁珠。

?????? 一:SQL Server 網(wǎng)絡(luò)接口(SNI)是一個(gè)協(xié)議層逻炊,負(fù)責(zé)建立客戶端和服務(wù)器之間的網(wǎng)絡(luò)連接。SQL Server支持的協(xié)議有:共享內(nèi)存犁享、TCP/IP余素、命名管道 等,這里我講一下 TCP 協(xié)議的三次握手和四次揮手炊昆,TCP端口默認(rèn)1433桨吊,UDP端口默認(rèn)1434


二:SQL Server 由兩個(gè)主要引擎組成:關(guān)系引擎和存儲(chǔ)引擎。

?????? 關(guān)系引擎有時(shí)稱為查詢處理器凤巨,因?yàn)殛P(guān)系引擎的主要功能是進(jìn)行查詢的優(yōu)化和執(zhí)行视乐。關(guān)系引擎包含三個(gè)主要部分,命令解析器磅甩、查詢優(yōu)化器和查詢執(zhí)行器炊林。命令解析器用于檢查查詢命令的語(yǔ)法和生成查詢樹,查詢優(yōu)化器大概是任何數(shù)據(jù)庫(kù)系統(tǒng)中最重要的一部分卷要,查詢執(zhí)行器負(fù)責(zé)查詢命令的執(zhí)行渣聚。

?????? 存儲(chǔ)引擎負(fù)責(zé)管理與數(shù)據(jù)相關(guān)的所有I/O操作拍顷,包括訪問方法和緩沖區(qū)管理器租悄。其中,訪問方法負(fù)責(zé)處理行岸夯、索引瓶堕、頁(yè)隘道、分配和行版本的I/O請(qǐng)求;緩沖區(qū)管理器負(fù)責(zé)緩沖池的管理郎笆,緩沖池是SQL Server 內(nèi)存的主要使用者谭梗。存儲(chǔ)引擎還包含了一個(gè)事物管理器,負(fù)責(zé)數(shù)據(jù)的鎖定以實(shí)現(xiàn)ACID(原子性宛蚓、一致性激捏、隔離性、持久性)屬性中的隔離性凄吏,并負(fù)責(zé)管理事物日志远舅。

?????? 緩沖池是SQL Server內(nèi)存最大的使用者闰蛔。緩沖池中包含了SQL Server 中所有類型的緩存,包括計(jì)劃緩存和數(shù)據(jù)緩存图柏。比如當(dāng)你查詢一個(gè)關(guān)聯(lián)語(yǔ)句時(shí)如果它開機(jī)后沒有執(zhí)行過序六,查詢時(shí)會(huì)消耗一點(diǎn)時(shí)間,如果開機(jī)后又查詢過在去查詢速度會(huì)很快蚤吹,它沒有去查詢數(shù)據(jù)庫(kù)文件而是去的內(nèi)存中緩存下來的數(shù)據(jù)例诀。


三:磁盤上的數(shù)據(jù)文件和日志文件。


這里已一個(gè)簡(jiǎn)單的查詢(select)和更新(update)的生命周期為例

簡(jiǎn)單的查詢

[if !supportLists]1.????[endif]客戶端的SQL Server 網(wǎng)絡(luò)接口(SNI)通過只用網(wǎng)絡(luò)協(xié)議裁着,例如TCP/IP與SQL Server服務(wù)器端的SNI建立了一個(gè)連接余佃,然后通過TCP/IP連接和TDS端點(diǎn)創(chuàng)建一個(gè)連接,并通過這個(gè)連接向SQL Server以TDS消息的形式發(fā)送select語(yǔ)句跨算。

[if !supportLists]2.????[endif]SQL Server的SNI將TDS消息解包,讀取select語(yǔ)句椭懊,然后將這個(gè)SQL命令發(fā)送給命令解析器诸蚕。

[if !supportLists]3.????[endif]命令解析器在緩沖池的計(jì)劃緩存中檢查是否已經(jīng)存在了一條與接收到的語(yǔ)句匹配且可用的查詢計(jì)劃。如果找不到命令解析器則基于select語(yǔ)句生成一個(gè)查詢樹氧猬,然后將查詢樹傳遞給查詢優(yōu)化器背犯,讓它生成查詢計(jì)劃。

[if !supportLists]4.????[endif]由于這條查詢命令比較簡(jiǎn)單盅抚,查詢優(yōu)化器僅在預(yù)優(yōu)化階段就生成了“零開銷”的查詢計(jì)劃(或稱為“普通”查詢計(jì)劃)漠魏。查詢優(yōu)化器將創(chuàng)建出來的查詢計(jì)劃發(fā)送給查詢執(zhí)行器執(zhí)行。

[if !supportLists]5.????[endif]查詢執(zhí)行器在執(zhí)行查詢計(jì)劃的時(shí)候妄均,首先確定完成這個(gè)查詢計(jì)劃需要讀取什么數(shù)據(jù)柱锹,然后通過OLE DB 接口向存儲(chǔ)引擎中的訪問方法發(fā)送訪問請(qǐng)求。

[if !supportLists]6.????[endif]為了完成查詢執(zhí)行器的請(qǐng)求丰包,訪問方法需要從數(shù)據(jù)庫(kù)中讀取一個(gè)數(shù)據(jù)頁(yè)面禁熏,并要求緩沖區(qū)管理器提供這個(gè)數(shù)據(jù)頁(yè)面。

[if !supportLists]7.????[endif]緩沖區(qū)管理器在數(shù)據(jù)緩存中檢查這個(gè)數(shù)據(jù)頁(yè)是否已經(jīng)存在邑彪。由于這個(gè)頁(yè)面并沒有在緩存中瞧毙,因此緩沖區(qū)管理器首先從磁盤上獲取這個(gè)數(shù)據(jù)頁(yè)面,然后將其存入緩存寄症,并傳回給訪問方法宙彪。

[if !supportLists]8.????[endif]最后,訪問方法將結(jié)果集傳遞給關(guān)系引擎有巧,由關(guān)系引擎將結(jié)果集發(fā)送給客戶端释漆。

商業(yè)智能入門基礎(chǔ):http://www.51zxw.net/list.aspx?cid=610

簡(jiǎn)單的更新

?????? 更新與查詢的前面步驟是一樣的,到了訪問方法這一步剪决,事物管理器會(huì)將更新操作寫入日志管理器中灵汪,只有在確定操作已經(jīng)成功寫入了事物日志之后檀训,才能夠執(zhí)行真正的數(shù)據(jù)修改操作。所以事物日志的性能很關(guān)鍵享言,一旦訪問方法接收到確認(rèn)信息峻凫,就將修改數(shù)據(jù)的請(qǐng)求發(fā)送給緩沖區(qū)管理器,由緩沖區(qū)管理器完成修改數(shù)據(jù)的操作览露。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荧琼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子差牛,更是在濱河造成了極大的恐慌命锄,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偏化,死亡現(xiàn)場(chǎng)離奇詭異脐恩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)侦讨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門驶冒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人韵卤,你說我怎么就攤上這事骗污。” “怎么了沈条?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵需忿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蜡歹,道長(zhǎng)屋厘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任月而,我火速辦了婚禮擅这,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘景鼠。我一直安慰自己仲翎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布铛漓。 她就那樣靜靜地躺著溯香,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浓恶。 梳的紋絲不亂的頭發(fā)上玫坛,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音包晰,去河邊找鬼湿镀。 笑死炕吸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的勉痴。 我是一名探鬼主播赫模,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蒸矛!你這毒婦竟也來了瀑罗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤雏掠,失蹤者是張志新(化名)和其女友劉穎斩祭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乡话,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摧玫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绑青。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片席赂。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖时迫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谓晌,我是刑警寧澤掠拳,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站纸肉,受9級(jí)特大地震影響溺欧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柏肪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一姐刁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烦味,春花似錦聂使、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至溃论,卻和暖如春屎蜓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钥勋。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工炬转, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辆苔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓扼劈,卻偏偏與公主長(zhǎng)得像驻啤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子测僵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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

  • 文章圖片上傳不正常街佑,如需文檔,可聯(lián)系微信:1017429387 目錄 1 安裝... 4 1.1 配置探針... ...
    Mrhappy_a7eb閱讀 6,302評(píng)論 0 5
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5捍靠? 答:HTML5是最新的HTML標(biāo)準(zhǔn)沐旨。 注意:講述HT...
    kismetajun閱讀 27,486評(píng)論 1 45
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,932評(píng)論 2 89
  • 自從有了高鐵、動(dòng)車榨婆、飛機(jī)和私家車磁携,以及越來越受歡迎的U步和滴滴打車,道路交通的運(yùn)營(yíng)量受到了巨大的沖擊良风。我們家...
    周周writing閱讀 912評(píng)論 0 0
  • 1谊迄、 Scroll-x和y的用法,每種會(huì)綁定兩個(gè)函數(shù)烟央,當(dāng)移到左邊或者右邊還是上面或者下面的時(shí)候會(huì)觸發(fā)统诺。觸發(fā)的函數(shù)...
    Catch_the_tail閱讀 160評(píng)論 0 0