Sql-Server

使用 sp_BlitzIndex - 被診斷為“索引囤積者:沉迷於空值”

  • January 16, 2016

上下文:MS SQL Server 2012

在使用 Kendra Little 的出色工具 sp_BlitzIndex 時,許多表被診斷為“索引囤積者:沉迷於空值”。

我不是在尋找關於 NULL 及其位置的辯論。我知道在某些情況下 NULL 是完全合適的,甚至是必要的。這裡的問題是 sp_BlitzIndex 提供的回饋,以及強制執行 not NULL 約束的值。

在 sp_BlitzIndex “診斷”為具有許多允許 NULL 的列的大多數表中,沒有任何實際的 NULL 值。我們以程式方式不允許它們。我只是從未取消選中“允許空值”框以在數據庫級別強制執行該約束。

強制執行此約束有什麼好處,為什麼這是她的腳本辨識的問題之一?

謝謝!

我認為有問題的腳本是 sp_BlitzIndex。

該腳本列出了超過 3 列的表,並且不可為空的列的數量為 1 或 0。這並不意味著這些表不好 - 但如果您看到很多行,它就在那裡提出問題:

  • 這些列都真正包含空值是否有效?
  • 創建表時,人們是否小心設置正確的屬性?

如果這兩個問題的答案都是肯定的,那完全沒問題。支票就在那裡,因為它值得考慮。它在那裡主要只是為了開始關於數據完整性和有效性的對話,僅此而已。

感謝您使用腳本!

引用自:https://dba.stackexchange.com/questions/83204