SPARSE是实现SQL列联合的最佳方法吗?

时间:2012-03-15 16:39:13

标签: sql sql-server sql-server-2008

我们有一个包含19个可空列的表,其中每个记录上只有一列被赋予非空值,有点像C联合。这是使用SPARSE的理想情况吗?还有更好的选择吗?每列都是一个(整数)外键,所以我认为我们不想尝试将它们合并到一个列中,因为我们希望能够清楚而简单地定义与其他实体的关系。

如果你想知道为什么我们有这个设计,那就是序列号跟踪。对于序列号上可能发生的每笔交易,我们都有一条记录。我们关心的交易有19种(记录在19个不同的表中)。我们希望能够参考任何这些交易。

1 个答案:

答案 0 :(得分:0)

根据BOL部分Estimated Space Savings by Data Type,如果至少64%为SPARSE,您应该考虑INTNULL

你有94.7%NULL所以你似乎可以从中受益。这似乎是一个不寻常的设计。