91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何深入理解Sql Server中的表掃描

發布時間:2021-12-01 09:39:30 來源:億速云 閱讀:110 作者:柒染 欄目:數據庫

如何深入理解Sql Server中的表掃描,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

  很久以前我們在寫sql的時候,最怕的一件事情就是sql莫名奇妙的超級慢,慢的是擼一管子回來,那個小球還在一直轉。這個著急也只有當事人才明白,后來聽說有個什么“評估執行計劃“,后來的后來才明白應該避免表掃描。

一:表掃描

1.現象

  ”表掃描“聽起來很簡單,不就是一行一行的掃嘛,你要說”執行計劃”的話,我也會玩,為了更可觀,我build一個表,再插入三行數據,如下圖:

上面的Person我是一個索引都沒建,然后where一下,看看表掃描是啥樣的???

果然是看到了萬惡的“表掃描”三個字,既然是萬惡的東西,我們一定要深刻了解下,然后我們才可以怎么去想辦法避免它。所以我們一定要理解到本質,那問題來了,它到底是怎么掃的呢???怎么破呢?這個還必須得從數據頁說起。

二: 深刻理解表掃描

1:數據頁

  這個學sqlserver的沒有理由說不知道,我們的記錄都是以數據頁形式存儲的,而且還應該知道數據頁的大小是8k。那數據頁在哪里?我可以

讓你眼見為實。

乍一看我畫了好多,千萬不要怕,不要以為畫的多,就以為高深了。。。我簡單的剖析下。

<1>:dbcc ind 命令

 你要是想看數據頁的相關情況,sqlserver還真提供了專用命令dbcc 滿足你,你可能會問sqlserver中有提供ind命令的參數嗎?告訴你吧,還真有

的,不過這個要開啟2588跟蹤,就像下面這樣。

<2>:PageFID,PagePID,IAMFID

  剛才也說了,數據頁有很多種,默認說的都是表數據頁,其實還有IAM數據頁,沒什么稀奇的,IAM就是用來跟蹤表數據頁的,所以上面的圖中,IAMFID字段為Null的記錄就是IAM頁,下面的PagePID=78的,就是表數據頁。

2.查看數據頁

為避免大家糊涂了,我先還是說說數據頁內部結構大概是個什么樣子,好讓大家有個整體印象。

 從圖中可以看到,在數據頁的尾部是有很多槽位的,這些槽位指向了Data區域中一條條實際記錄的地址,所以說表掃描,其實就是掃這些Slot槽位,

還是拿上面的Person表中的三條記錄來說,他們都是保存在78號數據頁中,現在出于好奇心把78號數據頁導出來,說干就干。很簡單,你需

要做兩件事情:

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

<2>使用dbcc page 命令導出1號文件下面的78號數據頁(pageFID:pagePID)=(1:78),就像下面這樣。

數據頁頭(PAGE HEADER):

數據內容(Page Data):

數據槽位(Page Slot):

有沒有看到上面(0,1,2)三個槽位,并且都有相應的偏移地址(0x7e,0x92,0xba),這個地址就指向了Data區域實際記錄的偏移地址。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

襄汾县| 胶南市| 微博| 正阳县| 紫金县| 浮山县| 福海县| 观塘区| 建始县| 黑龙江省| 视频| 孟州市| 伊川县| 临西县| 资兴市| 平遥县| 资源县| 西藏| 葫芦岛市| 晴隆县| 沧源| 同江市| 朝阳市| 惠东县| 昂仁县| 论坛| 通榆县| 枣阳市| 广州市| 云梦县| 金溪县| 京山县| 阳泉市| 庄浪县| 辉县市| 清丰县| 读书| 澄迈县| 滨海县| 曲周县| 涟源市|