人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

深入理解Sql Server中的表掃描

發(fā)布日期:2021-12-25 11:32 | 文章來(lái)源:腳本之家

很久以前我們?cè)趯?xiě)sql的時(shí)候,最怕的一件事情就是sql莫名奇妙的超級(jí)慢,慢的是擼一管子回來(lái),那個(gè)小球還在一直轉(zhuǎn)。。。這個(gè)著急也只有當(dāng)事人才明白,后來(lái)聽(tīng)說(shuō)有個(gè)什么“評(píng)估執(zhí)行計(jì)劃“,后來(lái)的后來(lái)才明白應(yīng)該避免表掃描。。。

一:表掃描

1.現(xiàn)象

”表掃描“聽(tīng)起來(lái)很簡(jiǎn)單,不就是一行一行的掃嘛,你要說(shuō)”執(zhí)行計(jì)劃”的話,我也會(huì)玩,為了更可觀,我build一個(gè)表,再插入三行數(shù)據(jù),如下圖:

上面的Person我是一個(gè)索引都沒(méi)建,然后where一下,看看表掃描是啥樣的???

果然是看到了萬(wàn)惡的“表掃描”三個(gè)字,既然是萬(wàn)惡的東西,我們一定要深刻了解下,然后我們才可以怎么去想辦法避免它。。。所以我們一定要理解到本質(zhì),那問(wèn)題來(lái)了,它到底是怎么掃的呢???怎么破呢?這個(gè)還必須得從數(shù)據(jù)頁(yè)說(shuō)起。。。

二: 深刻理解表掃描

1:數(shù)據(jù)頁(yè)

  這個(gè)學(xué)sqlserver的沒(méi)有理由說(shuō)不知道,我們的記錄都是以數(shù)據(jù)頁(yè)形式存儲(chǔ)的,而且還應(yīng)該知道數(shù)據(jù)頁(yè)的大小是8k。。。。那數(shù)據(jù)頁(yè)在哪里?我可以

讓你眼見(jiàn)為實(shí)。

乍一看我畫(huà)了好多,千萬(wàn)不要怕,不要以為畫(huà)的多,就以為高深了。。。我簡(jiǎn)單的剖析下。

<1>:dbcc ind 命令

 你要是想看數(shù)據(jù)頁(yè)的相關(guān)情況,sqlserver還真提供了專(zhuān)用命令dbcc 滿足你,你可能會(huì)問(wèn)sqlserver中有提供ind命令的參數(shù)嗎?告訴你吧,還真有

的,不過(guò)這個(gè)要開(kāi)啟2588跟蹤,就像下面這樣。

<2>:PageFID,PagePID,IAMFID

剛才也說(shuō)了,數(shù)據(jù)頁(yè)有很多種,默認(rèn)說(shuō)的都是表數(shù)據(jù)頁(yè),其實(shí)還有IAM數(shù)據(jù)頁(yè),沒(méi)什么稀奇的,IAM就是用來(lái)跟蹤表數(shù)據(jù)頁(yè)的,所以上面的圖中,IAMFID字段為Null的記錄就是IAM頁(yè),下面的PagePID=78的,就是表數(shù)據(jù)頁(yè)。

2.查看數(shù)據(jù)頁(yè)

為避免大家糊涂了,我先還是說(shuō)說(shuō)數(shù)據(jù)頁(yè)內(nèi)部結(jié)構(gòu)大概是個(gè)什么樣子,好讓大家有個(gè)整體印象。

 從圖中可以看到,在數(shù)據(jù)頁(yè)的尾部是有很多槽位的,這些槽位指向了Data區(qū)域中一條條實(shí)際記錄的地址,所以說(shuō)表掃描,其實(shí)就是掃這些Slot槽位,

還是拿上面的Person表中的三條記錄來(lái)說(shuō),他們都是保存在78號(hào)數(shù)據(jù)頁(yè)中,現(xiàn)在出于好奇心把78號(hào)數(shù)據(jù)頁(yè)導(dǎo)出來(lái),說(shuō)干就干。。。。很簡(jiǎn)單,你需

要做兩件事情:

<1>開(kāi)啟3604跟蹤: dbcc traceon(3604)

<2>使用dbcc page 命令導(dǎo)出1號(hào)文件下面的78號(hào)數(shù)據(jù)頁(yè)(pageFID:pagePID)=(1:78),就像下面這樣。。。

數(shù)據(jù)頁(yè)頭(PAGE HEADER):

數(shù)據(jù)內(nèi)容(Page Data):

數(shù)據(jù)槽位(Page Slot):

有沒(méi)有看到上面(0,1,2)三個(gè)槽位,并且都有相應(yīng)的偏移地址(0x7e,0x92,0xba),這個(gè)地址就指向了Data區(qū)域?qū)嶋H記錄的偏移地址。

好了,到此為止吧,不能再往下說(shuō)了,洗洗睡了。

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部