Sql-Server
使用 sp_BlitzIndex - 被診斷為“索引囤積者:沉迷於空值”
上下文:MS SQL Server 2012
在使用 Kendra Little 的出色工具 sp_BlitzIndex 時,許多表被診斷為“索引囤積者:沉迷於空值”。
我不是在尋找關於 NULL 及其位置的辯論。我知道在某些情況下 NULL 是完全合適的,甚至是必要的。這裡的問題是 sp_BlitzIndex 提供的回饋,以及強制執行 not NULL 約束的值。
在 sp_BlitzIndex “診斷”為具有許多允許 NULL 的列的大多數表中,沒有任何實際的 NULL 值。我們以程式方式不允許它們。我只是從未取消選中“允許空值”框以在數據庫級別強制執行該約束。
強制執行此約束有什麼好處,為什麼這是她的腳本辨識的問題之一?
謝謝!
我認為有問題的腳本是 sp_BlitzIndex。
該腳本列出了超過 3 列的表,並且不可為空的列的數量為 1 或 0。這並不意味著這些表不好 - 但如果您看到很多行,它就在那裡提出問題:
- 這些列都真正包含空值是否有效?
- 創建表時,人們是否小心設置正確的屬性?
如果這兩個問題的答案都是肯定的,那完全沒問題。支票就在那裡,因為它值得考慮。它在那裡主要只是為了開始關於數據完整性和有效性的對話,僅此而已。
感謝您使用腳本!