我们有一个包含19个可空列的表,其中每个记录上只有一列被赋予非空值,有点像C联合。这是使用SPARSE的理想情况吗?还有更好的选择吗?每列都是一个(整数)外键,所以我认为我们不想尝试将它们合并到一个列中,因为我们希望能够清楚而简单地定义与其他实体的关系。
如果你想知道为什么我们有这个设计,那就是序列号跟踪。对于序列号上可能发生的每笔交易,我们都有一条记录。我们关心的交易有19种(记录在19个不同的表中)。我们希望能够参考任何这些交易。
答案 0 :(得分:0)
根据BOL部分Estimated Space Savings by Data Type,如果至少64%为SPARSE
,您应该考虑INT
列NULL
。
你有94.7%NULL
所以你似乎可以从中受益。这似乎是一个不寻常的设计。