1

我有一个表,其中有一uniqueidentifier列仅由某些行使用。

这样做是否是个好主意:

  • 使该列可为空并使未使用行的唯一标识符为空?
  • 或不使列可为空并为所有行填写 GUID 值?

SELECT对 uniqueidentifier 列的查询会有任何性能差异吗?那么磁盘空间呢?空值是否占用相同数量的空间?

4

2 回答 2

7

如果您使用的是 SQL Server 2008+,您可能需要考虑使用稀疏列。它针对存储主要包含空值的列进行了优化。

于 2012-11-16T20:57:16.010 回答
0

如果要在 where 子句中使用可为空的列,还要检查 MSSQL 过滤索引。

于 2012-11-17T20:13:17.730 回答