使用 sp_BlitzIndex - 诊断为“索引囤积者:沉迷于空值”

Mat*_*nte 4 null sql-server index-tuning sql-server-2012 sp-blitzindex

上下文:MS SQL Server 2012

在使用 Kendra Little 的强大工具 sp_BlitzIndex 时,许多表被诊断为“索引囤积者:沉迷于空值”。

我不是在寻找关于 NULL 及其位置的辩论。我知道在某些情况下 NULL 非常合适,甚至是必要的。这里的问题是 sp_BlitzIndex 提供的反馈,以及强制执行 not NULL 约束的值。

在 sp_BlitzIndex 被“诊断”为具有许多允许 NULL 的列的大多数表中,没有任何实际的 NULL 值。我们以编程方式不允许它们。我只是从未取消选中“允许空值”框以在数据库级别强制执行该约束。

强制执行此约束有什么好处,为什么它是她的脚本确定的问题之一?

谢谢!

Ken*_*tle 8

我认为有问题的脚本是 sp_BlitzIndex。

该脚本列出了超过 3 列的表,不可为空的列数为 1 或 0。这并不意味着这些表是坏的——但如果你看到很多行,它就在那里提出这个问题:

  • 这些列都真正包含空值是否有效?
  • 创建表时,人们是否小心设置正确的属性?

如果这两个问题的答案都是肯定的,那完全没问题。支票就在那里,因为它值得考虑。它主要用于开始有关数据完整性和有效性的对话,仅此而已。

感谢您使用脚本!