我试图了解 Sql Server 数据页的结构。这是 Dmitri Korotkevitch 的 Pro SQL Server Internals 的屏幕截图, 我创建了 3 个表:
- 1 个 INT 列
- 2 个 INT 列
- 4 个 INT 列
所有列都不为空
然后我跑
dbcc traceon(3604);
dbcc page
(
'DbName'
,1 /*File ID*/
,368 /*Page ID*/
,3 /*Output mode: 3 - display page header and row details */
);
并获得以下 Fdata 长度值:
- 带 1 列 - 0800 = 0008 = 8 = 4 + 1x4
- 有 2 列 - 0c00 = 00c0 = 12 = 4 + 2x4
- 有 4 列 - 1400 = 0014 = 20 = 4 + 4x4
在这里,我列出了“输出中的值”=“交换值”=“十进制值”
已编辑:据我了解,它是 Const_4 + Nbr_of_Columns * Size_Of_Columns。这个 Const_4 是什么?