頁和區

来源:http://www.cnblogs.com/lj820403/archive/2017/07/28/7248492.html
-Advertisement-
Play Games

SQL Server 中數據存儲的基本單位是頁。為資料庫中的數據文件(.mdf 或 .ndf)分配的磁碟空間可以從邏輯上劃分成頁(從 0 到 n 連續編號)。磁碟 I/O 操作在頁級執行。也就是說,SQL Server 讀取或寫入所有數據頁。 區是八個物理上連續的頁的集合,用來有效地管理頁。所有頁都 ...


SQL Server 中數據存儲的基本單位是頁。為資料庫中的數據文件(.mdf 或 .ndf)分配的磁碟空間可以從邏輯上劃分成頁(從 0 到 n 連續編號)。磁碟 I/O 操作在頁級執行。也就是說,SQL Server 讀取或寫入所有數據頁。

區是八個物理上連續的頁的集合,用來有效地管理頁。所有頁都存儲在區中。

在 SQL Server 中,頁的大小為 8 KB。這意味著 SQL Server 資料庫中每 MB 有 128 頁。每頁的開頭是 96 位元組的標頭,用於存儲有關頁的系統信息。此信息包括頁碼、頁類型、頁的可用空間以及擁有該頁的對象的分配單元 ID。

下表說明瞭 SQL Server 資料庫的數據文件中所使用的頁類型。

頁類型

內容

Data

text in row 設置為 ON 時,包含除 text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 數據之外的所有數據的數據行。

Index

索引條目。

Text/Image

大型對象數據類型:

  • text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 數據。

數據行超過 8 KB 時為可變長度數據類型列:

  • varchar、nvarchar、varbinary 和 sql_variant

Global Allocation Map、Shared Global Allocation Map

有關區是否分配的信息。

Page Free Space

有關頁分配和頁的可用空間的信息。

Index Allocation Map

有關每個分配單元中表或索引所使用的區的信息。

Bulk Changed Map

有關每個分配單元中自最後一條 BACKUP LOG 語句之後的大容量操作所修改的區的信息。

Differential Changed Map

有關每個分配單元中自最後一條 BACKUP DATABASE 語句之後更改的區的信息。

註意註意

日誌文件不包含頁,而是包含一系列日誌記錄。

在數據頁上,數據行緊接著標頭按順序放置。頁的末尾是行偏移表,對於頁中的每一行,每個行偏移表都包含一個條目。每個條目記錄對應行的第一個位元組與頁首的距離。行偏移表中的條目的順序與頁中行的順序相反。

具有行偏移的 SQL Server 數據頁

大型行支持

行不能跨頁,但是行的部分可以移出行所在的頁,因此行實際可能非常大。頁的單個行中的最大數據量和開銷是 8,060 位元組 (8 KB)。但是,這不包括用 Text/Image 頁類型存儲的數據。包含 varchar、nvarchar、varbinary 或 sql_variant 列的表不受此限制的約束。當表中的所有固定列和可變列的行的總大小超過限制的 8,060 位元組時,SQL Server 將從最大長度的列開始動態將一個或多個可變長度列移動到 ROW_OVERFLOW_DATA 分配單元中的頁。每當插入或更新操作將行的總大小增大到超過限制的 8,060 位元組時,將會執行此操作。將列移動到 ROW_OVERFLOW_DATA 分配單元中的頁後,將在 IN_ROW_DATA 分配單元中的原始頁上維護 24 位元組的指針。如果後續操作減小了行的大小,SQL Server 會動態將列移回到原始數據頁。有關詳細信息,請參閱行溢出數據超過 8 KB

區是管理空間的基本單位。一個區是八個物理上連續的頁(即 64 KB)。這意味著 SQL Server 資料庫中每 MB 有 16 個區。

為了使空間分配更有效,SQL Server 不會將所有區分配給包含少量數據的表。SQL Server 有兩種類型的區:

  • 統一區,由單個對象所有。區中的所有 8 頁只能由所屬對象使用。

  • 混合區,最多可由八個對象共用。區中八頁的每頁可由不同的對象所有。

通常從混合區向新表或索引分配頁。當表或索引增長到 8 頁時,將變成使用統一區進行後續分配。如果對現有表創建索引,並且該表包含的行足以在索引中生成 8 頁,則對該索引的所有分配都使用統一區進行。

混合區和統一區
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先,對於安卓開發,目前世界上流行的是使用的是Android studio 2.0 。(hh 學著來唄 書上說用這個,,) 今後就定一個計劃 每天更新一個Android 隨筆,增強一下自控力吧!!! (∩_∩) 相信自己可以做到!!! 第一天 Intent用法 直接上代碼 可見intent用法大體上 ...
  • 一、原因 1、如果apk發佈到網上,系統預設的簽名debug.keystore存在安全問題,所以要自己寫簽名。 二、方法 方法一:利用JDK中的keytool.exe工具 利用JDK中的keytool.exe工具 我的目錄是: E:\JAVA\jdk\bin\keytool.exe 步驟 1、在wi ...
  • java.lang.IllegalStateException: Fragment already added: ******Effect 出現的原因是commit方法提交是非同步的,所以容易出現,判斷的時候是還沒有added的狀態,但是在真的添加的時候,重覆添加了,其實就是一個同步非同步的問題。 解決 ...
  • Android項目目錄結構 ...
  • Android程式的安裝和打包 ...
  • 1.查找是否存在指定包名的App 2.創建Intent,刪除指定包名的App ...
  • 一、NSTimer使用時有哪些需要註意點? 1、必須保證有一個活躍的RunLoop。 NSTimer是基於RunLoop的一種定時機制,這涉及到預設主線程和子線程RunLoop的知識延伸;同時還有頁面滑動時防止定時器失效的知識點: 解決方案:[[NSRunLoop currentRunLoop] a ...
  • 目錄 · 概況 · 原理 · MapReduce編程模型 · MapReduce過程 · 容錯機制 · API · 概況 · WordCount示例 · Writable介面 · Mapper類 · Reducer類 · Partitioner抽象類 · WritableComparator介面 · ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...