SQLSERVER的資料頁面結構

來源:互聯網
上載者:User

   SQLSERVER的資料頁面結構

  在論壇裡經常有人問到SQLSERVER是怎麽存放基礎資料表資料的,既然不想查MSDN,本人就在這裡說一下吧

  每一行資料在資料頁面裡是怎麽存放的?

  結構組成:每個SQLSERVER的資料頁面大致分成3個部分:頁頭,頁尾位移量,資料存放區 這3個部分

  假設現在有一個表,表的結構是:

  CREATE TABLE test(

  a INT,

  b INT

  )

  他在1:100這個頁面上儲存資料(1是資料庫的資料檔案ID 亦即是FILEID,100 是PAGEID 頁面編號)。

  這個頁面結構大致如下圖

  在頁頭部分,會記錄頁面屬性,包括頁面編號等,還會記錄當前頁面空閑部分的起始位置在哪裡,這樣SQLSERVER在要插入新資料的時候,就能夠很快地找到開始插入的位置,而頁尾的位移量記錄了每一條資料行的起始位置。這樣SQLSERVER在找每一條記錄的時候,就能很快找到不會把前一條記錄和後一條搞混。在圖例這一頁裡現在有兩條記錄:(1,100)和(2,200)第一條記錄的開始位置是96,第二條記錄的開始位置是111,從126開始,是閒置空間當頁面裡的資料行發生變化的時候,SQLSERVER不但要去修改資料本身,還要修改這些位移量的值,以保證SQLSERVER能夠繼續準確地管理資料頁面裡的每一行。

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。