【发布时间】:2013-08-02 16:24:24
【问题描述】:
我正在尝试计算sql_variant 用于存储固定长度数据类型的存储空间。
为了我的测试,我创建了一个包含两列的表:
Key int identitiy(1,1) 主键 值 sql_variant我添加了一行,类型为 int 的值为 1,然后我使用 DBCC PAGE 检查了行的大小,结果是 21 个字节。
使用Estimate the Size of a Clustered Index 我有:
空位图 = 3 Fixed_Data_Size = 4(键列 int) Variable_Data_Size = 2 + 2 + 4(带 int 的值列)Row_Size = 4 + 8 + 3 + 4 = 19 字节
为什么行占用 21 个字节?我的计算中遗漏了什么?
我尝试对使用 int 列而不是 sql_variant 的表进行相同的分析,DBCC PAGE 报告的已用字节数为 15,这与我的计算相符:
空位图 = 3 Fixed_Data_Size = 8(键列 int,值列 int) Variable_Data_Size = 0Row_Size = 4 + 8 + 3 = 15 字节
【问题讨论】:
标签: sql-server database-design