为什么稀疏列中的非空值占用SQL Server 2008中的额外空间

时间:2010-08-11 05:36:25

标签: sql sql-server-2008

我可以知道为什么具有非空值的稀疏列占用了4By的额外空间..我发现为什么它需要 4个字节的额外空间 ..请帮帮我吗? / p>

1 个答案:

答案 0 :(得分:2)

From MSDN(我的大胆)

  

SQL Server数据库引擎使用   列中的SPARSE关键字   定义以优化存储   该列中的值。 因此,何时   任何行的列值为NULL   在表中,值不需要   存储

反向是NON-null意味着“总是存储一个值”=使用以下条件的字节:

  

稀疏列需要更多存储空间   非空值的空间比   相同数据所需的空间   没有标记为SPARSE。

..并且MSDN中的下表显示每个稀疏列+4个字节

对不起,如果听起来很苛刻,你还能期待什么呢?

And a nice summary of SPARSE here