天天看點

【SQL Server】書簽

書簽是什麼

  不論表是堆結構還是段結構,可以确定的是,表中每一行都是某一頁的第N行,這個某一頁又是某個資料庫檔案的第N頁,這個某個資料庫檔案又是構成資料 庫的檔案組的第N個檔案,是以,資料庫中的每一行,在指定時間都可以由三個數字進行定位:  檔案号:頁号:行号。這三個數字組合起來就是所謂的RID。很多顯示SQL Server内部結構的工具軟體都會将這三個數字通過冒号分隔進行顯示。比如,檔案1的第77頁的第12行的RID就是1:77:12。

    通常來說,在堆上的行不會被改變位置。一旦它們被插入某個頁中,它們就會一直呆在那。如果要用更嚴謹的技術術語來說的話:在堆上的行很少移動。如果行被移 動的話,它們會在原來的位置留下指向其移動到的位置的指針。而由聚集索引組織的行,是可以被移動的,行在改動資料或是整理索引的時候要被移動位置。更多的 細節會在本系列文章後續篇幅進行介紹。

    因為在堆上的行幾乎很少移動,是以RID就可以唯一辨別某一行。RID的值不僅僅不變,RID所表示行的實體位置也不會變。這使得RID的值更适宜作為書簽。這也是為什麼SQL Server在堆上建立的非聚集索引的書簽都使用RID。