删除非聚集索引时会发生什么?

And*_*y M 2 t-sql sql-server sql-server-2008-r2 non-clustered-index

当我从其中一个表中删除索引时,SQL Server引擎端会发生什么?

详细信息:我有一个数据库正在运行生产.

在这个数据库中,我有一个定期创建死锁的查询.我发现查询创建了死锁,在我的计算机上运行它,显示其执行计划.SQL Server Management Studio建议在一个特定的表上添加索引.

该索引对我来说很有意义,但我的问题是,在这个表上我已经有3个索引,说实话,我不能确定它们是否正确使用或者是否为特定角色创建了它们.

我可以简单地在表格上添加一个索引,但我担心每次在表格上添加/更新/删除数据时我将支付的费用.

我在我的机器上做了几次尝试,似乎我需要删除至少两个其他索引才能让引擎选择我今天创建的索引(对我来说很奇怪).一旦我强制引擎获取我的索引(因为我删除了其他所有内容),查询运行速度提高了10倍.

我可以简单地使用DROP Index命令吗?我不需要重建或任何东西?

Dam*_*ver 6

非聚集索引是辅助数据结构 - 它不会"集成"到聚簇索引或堆的主数据结构中.

因此,删除一个应该是一个相对快速和无痛苦的体验,因为所有系统应该做的是删除有关索引的元数据并将索引的页面标记为未分配.

不应该"重建"或做任何其他事情.