SQL Server儲存機制

來源:互聯網
上載者:User

標籤:

SQL Server儲存機制                                                                                   

  1、區段

  區段(extent)是用來為表和索引分配空間的基本存放裝置單元。它由8個連續的64KB資料頁組成。

  基於區段(而不是實際使用空間)分配空間的概念的要點:

  1.   一旦區段已滿,那麼下一記錄將要佔據的空間不是記錄的大小,而是整個新區段的大小。一次分配一個區段而不是分配一個記錄。
  2.   通過預分配空間,SQL Server節省為每個記錄分配新空間的時間。

    向當前分配的區段添加了過多的行就要佔用整個區段,看起來是一種浪費,但是這種方法浪費的空間不多。但是,這些浪費的空間會累加,特別是在片段較多的環境中。

  佔據所有空間的好處是SQL Server省去了一些分配時間的系統開銷,不需在每次寫入行時都考慮分配問題,SQL Server僅僅當需要新區段時才處理額外的空間分配。

  不要將區段佔用的空間和資料庫佔用的空間想混淆,分配給資料庫的那些空間就是磁碟機將要減少的可用空間。區段僅僅是在又資料庫保留的整個空間內再次進行分配的方式。

  2、頁

  頁是特定區段中的配置單位。每個區段包含8頁。

  也是在到達實際資料行前所能達到的最後一個儲存層級。儘管每個區段中的頁數是固定的,但是每一頁中的行數不是固定的。這取決於行的大小,而行的大小是可以變化的。可以把頁看做是表行和索引行資料的容器。通常不允許跨行。

  常用的頁類型:

  1、資料頁:資料也是不需解釋的-它們是表中的實際資料,但任何沒有用text in row選項、varchar(max)或varbinary(max)定義的BLOB資料除外。

  2、索引頁:索引頁也是相當直觀-它們既包括非群集索引的非頁級和頁級頁,又包括群集索引的非頁級頁。

  在SQL SERVER中,儲存的最小單位是頁。SQL SERVER對於頁的讀取,要麼整個讀取,要麼完全不讀取,沒有折中。

  資料庫頁的大小是8K,實際能夠儲存的資料量為1024*8=8192-頁頭(96)-行位移(36)=8060位元組。

  頁面分割

  當頁滿時,它會進行拆分。這意味著多個新頁被分配-也意味著現有頁上又近半的資料被移到新頁上。

  在使用群集索引時,會有例外。如果有一個群集索引,並且下一個插入的記錄在物理上將作為表中的最後一個記錄,那麼建立一個新頁,然後將該新行添加到這個新頁中,而不需要重新置放任何現有資料。

  3、行

  行就是表中的一行記錄。行最大可達8KB。除了8060字元限制外,還有最大1024標準列(非稀疏列)的限制,列就是表的一列資料,就是你理解的列。實際上,突破8060字元限制前用完列的情況不多見。1024提供了小於8位元組的平均列寬度。1024個列,一個表通常才十幾個列啊。當突破了1024個列時,就要運用到稀疏列。

  4、稀疏列

  稀疏列是SQL Server2008新引入的一種特殊的資料結構。它們主要用於處理重複的情境,其中的列只是偶爾會用到。大部分時候為空白。許多時候,一旦遇到少量這類列,就意味著以後可能會遇到大量這類列。使用稀疏列,可以將單個表中允許的列的總數提高到30000。30000個列,什麼概念?什麼系統用得到這麼多列。

  Image、text、ntext、geography、geometry、timestamp和所有使用者自訂資料類型不能被標記為稀疏列。

SQL Server儲存機制

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.