这些年来,我看过许多文章,指出在SQL Server数据库中索引外键列是一个好主意。大多数情况下,我们的大型数据库在每个外键列上都有索引。
尽管在查看MS DM视图中的索引使用情况时,这些索引中有许多显示的表观使用率为零(搜索,扫描和查找)。
删除其中一些索引将节省大量磁盘空间,并且确实使用了零,但是是否存在各种内部和显式SQL Server操作,并且联接仍使用这些索引以某种方式不一定会出现在MS index dm查看统计信息?
如果有可能使用它们,我不想删除它们并损害性能。
答案 0 :(得分:1)
您不需要在有益的操作(例如JOIN或WHERE子句)中未使用的列上的索引。
如果每个列上都有索引,则可能有很多索引可以删除。您甚至可以提高性能 ,因为即使不使用索引也需要维护。
我不确定我对DM视图的信任程度。它们已被大量过滤,可能无法显示实际情况,具体取决于对象所在的位置以及您的权限是什么。