在仅包含 null 的列上创建聚集索引是否有任何目的?

Is there any purpose to creating a clustered index on a column that only contains null?

我们是 运行 Sitecore CMS 系统并将数据存储在 MS SQL 数据库中。在某些表中,我看到一个名为 DAC_Index 的列。该字段的值全部为空。然后在这个字段上创建了一个聚集索引。

  1. 聚簇索引一个全为Null的字段有什么用?
  2. 这会不会是为了防止任何人在另一个字段上创建聚簇索引?
  3. 拥有此字段是否会对性能产生负面影响?
  4. 是否有可能某些第 3 方组件或标准 .NET 组件利用 DAC_Index 列来实现某些功能,所以它可能只需要存在?但是,我仍然想知道为什么需要聚集索引。

该字段中的数据可能会偶尔更改(可能是在一组行发生某些事务期间)。我只知道当我查询数据时,它总是返回为所有 Null。

对此的目的有任何见解and/or拥有它对性能有何影响?

所有具有相同键值的行都将被赋予一个隐藏的唯一标识符,因此它的行为有点类似于整数标识列。但存储效率低于整数标识列。

来自 DAC_Index it looks as though it may have been written to migrate heap tables to Azure 的快速 Google。

Azure 要求所有表都具有聚集索引。看起来该脚本只是采用了添加新的可为空列并将其用于 CI 的方法。

我对 siteCore 一无所知。这可能有点乱七八糟,对所涉及的表进行一些分析会确定更好的聚集索引候选者。