公司內部培訓SQL Server傳統索引結構PPT分享

公司內部培訓SQL Server傳統索引結構PPT分享

 

 


B樹索引的由來
1970年,由波音公司的Rudolf.Bayer和Ed.mccreight提出了一種適用於外查找的樹,它是一種平衡的多叉樹,稱爲B樹(或B-樹、B_樹)。
B的含義尚無定論,通常認爲是Boeing,Bayer,balanced數據庫

 

下載地址優化

http://files.cnblogs.com/files/lyhabc/SQLServer%E4%BC%A0%E7%BB%9F%E7%B4%A2%E5%BC%95%E7%BB%93%E6%9E%84.pptspa

 

 

SQL優化 講課blog

下載地址索引

http://files.cnblogs.com/files/lyhabc/SQL%E4%BC%98%E5%8C%96%E8%AE%B2%E8%AF%BE.rarget

 

PPT有不對的地方,多多拍磚o(∩_∩)o it

 

索引結構原理

ffile

f下載

一頁只能存儲8060字節實際用戶數據

表只有一列,而且數據類型爲int的話,能夠存儲2015個值

f

f

f

 

f

f

頁拆分

一個頁裝不下全部條目,頁拆分過程:爲索引分配兩個額外的頁
現有的rootpage 降低成一個葉級頁。SQL Server獲取索引頁一半數據,把這一半數據移動到一個新分配的頁面。另外一個新頁則放在索引結構的頂部,成爲新的rootpage,整個過程的最後一步是獲取每一個葉級頁的第一個條目,並將那些條目寫入新建立的rootpage中

f

rootpage的2015行對應於中間級頁面的2015個頁,每一箇中間級頁面也有2015個條目,它們對應於葉級的2015個頁,最後加一個用於觸發新層級的數據行(2015 3次方+1)
在成長到超過80億多行後,才須要掃描三個索引頁

 

rootpage已經到了存儲極限,他不能容納2016個條目,由於那會使他超過最大容許的8060字節,所以,SQL Server會再次經歷一次「頁拆分」過程,之前的rootpage變成一箇中間級頁,同時建立一個新的中間級頁。之前的rootpage分一半條目給新建的中間級頁。同時,兩個中間級頁的第一個條目都寫入新的rootpage

因此SQL Server是B*樹

f

 

f

空間索引

 空間數據用一個二維座標系統定義,索引用B樹構建,而B樹是一個線性結構

f

因爲幾何平面是無限的,因此不能爲全部可能的二維空間都必定一個B樹

f

交換分區的原理

假設一個表只有一個字段int類型 4字節,那麼

一個頁面實際數據8060字節除以4字節 得出一個頁面能夠存儲2015行數據
8060/4=2015

扇出值就是2015
一個父節點能夠有2015個孩子


二級
2015*2015=4060225 行
2016個頁面


三級
2015*2015*2015=8181353375 行
4060226個頁面

f

SQL Server2008數據庫技術內幕P165

BOOT PAGE裏面的dbi_firstSysIndexes項指向sys.sysallocunits數據字典表

 

f

相關文章
相關標籤/搜索