91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL Server內幕之數據行的結構

發布時間:2020-07-25 23:06:46 來源:網絡 閱讀:1606 作者:易語隨風去 欄目:關系型數據庫

表的數據行具有圖6-5 所示的一般結構 (只要數據以未壓縮的形式存儲)。此格式稱為 FixedVar 格式, 因為所有固定長度列的數據首先存儲, 后跟所有可變長度列的數據。表6-7 顯示了存儲在每個 FixedVar 行中的信息。

SQL Server內幕之數據行的結構


SQL Server內幕之數據行的結構

狀態位 A 包含指示行屬性的位圖。這些位具有以下含義:


Bit 0 表示特殊的版本控制信息。在 SQL server 2012 中, 這始終是0。

Bits 1到3作為3位值, 

0 (000) 表示主記錄, 

1 (001) 表示轉發的記錄, 

2 (010) 表示轉發存根, 

3 (011) 指示一個索引記錄, 

4 (100) 指示一個 BLOB 片段或行溢出數據, 

5 (101) 表示虛影索引記錄, 

6 (110) 表示虛影數據記錄, 

7 (111) 表示虛影版本記錄。


Bit 4 表示存在空位圖。在 SQL server 2012 中, 即使在任何列中都不允許有 null, 

也始終存在空位圖。


Bit 5 表示行中存在可變長度列。


Bit 6 表示該行包含版本控制信息。


Bit 7 在 SQL server 2012 中不使用。



狀態位 B 字段中使用的唯一位表示該記錄是虛影轉發的記錄。



您可以在圖6-5 和表6-7 中看到第三個和第四個字節指示行的固定長度部分的長度。如圖6-5 所示, 它的長度不包括2個字節的列數和空位圖, 這取決于表中列的總數, 這是可變長度。解釋這些位中數據的另一種方法是, 在該行中可以找到列數的位置。例如, 如果第三個和第四個字節 (字節 2–3) 包含值 0x0016 (即十進制 22), 則表示該行不僅在列數的值之前有22個字節, 而且還意味著可以在字節22中找到列數的值。



在每個固定長度或可變長度數據塊中, 數據以創建表的列順序存儲。例如, 假設使用以下命令創建了一個表:


CREATE TABLE Test1

(

Col1 int NOT NULL,

Col2 char(25) NOT NULL,

Col3 varchar(60) NULL,

Col4 money NOT NULL,

Col5 varchar(20) NOT NULL

);


此行的固定長度數據部分包含 Col1 的數據, 后跟 Col2 的數據, 后跟 Col4 的數據。可變長度數據部分包含 Col3 的數據, 后跟 Col5 的數據。對于僅包含固定長度數據的行, 以下值為 true。


數據行第一個字節的第一個十六進制數字為 1, 表示不存在可變長度列。(第一個十六進制數字包括位4到 7; bits 6 和7總是 0, 如果不存在變長列, 則位5也是0。位4始終為 1, 因此四位的值顯示為1。


數據行結束于空位圖之后, 它遵循固定長度的數據 (即, 圖6-5 中顯示的陰影部分不會存在于只有固定長度數據的行中)。


每個數據行的總長度是相同的。



具有任何可變長度列的數據行有一個列偏移量數組, 每個非 NULL 可變長度列都有一個2字節的條目, 指示列在其中結束的行中的位置。(術語偏移和位置不是完全可互換的。偏移量是基于0的, 而位置是基于1的。偏移量為7的字節位于行中的第八字節位置。)存儲具有 NULL 值的可變長度列涉及一些特殊問題, 如后面的 "null 和可變長度列" 部分所討論的。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南平市| 广水市| 师宗县| 浦东新区| 泾川县| 探索| 越西县| 新沂市| 伽师县| 丁青县| 平原县| 红桥区| 兰考县| 云南省| 浮梁县| 合作市| 镇沅| 怀远县| 宾阳县| 阿坝| 台北市| 乌审旗| 海伦市| 金寨县| 龙南县| 泰兴市| 扶余县| 宁南县| 新干县| 正镶白旗| 多伦县| 沿河| 汕头市| 广昌县| 和田市| 玉溪市| 南通市| 祁连县| 福建省| 梁河县| 杨浦区|