删除索引时会发生什么坏事?

发布于 2025-01-03 17:46:51 字数 1459 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

荒岛晴空 2025-01-10 17:46:51
  • 减慢速度,有时大幅
  • 删除唯一索引可能会导致数据不一致,因此 - 错误的查询结果
  • 在计算列上删除索引 - 可能甚至更显着降低性能
  • ,增加缓冲池的使用- 因此可能会拒绝为某些内存加载 CLR 代码甚至常规查询提供服务。由于内存不足可能会导致更频繁的重新编译,
  • 从而导致更多的死锁
  • ,从而严重增加 IO 子系统的压力
  • slow down, sometimes dramatically
  • dropping unique indexes can cause to data unconsistancy and thus - wrong query results
  • dropping indexes on calculated columns - can even more dramatically reduce performance
  • increases usage of buffer pool - thus may be denial of servicing some memory loading CLR code or even regular queries. Due to lack of memory can cause more often recompilations
  • can cause many more deadlocks
  • can heavily increase pressure to IO subsystem
我的痛♀有谁懂 2025-01-10 17:46:51

如果索引是唯一索引,则可以防止插入重复值。如果删除它,则可能会在不合适的地方输入唯一值。

If an index is a unique index, it prevents that duplicate values are inserted. If you drop it, unique values could be entered where not appropriate.

呆° 2025-01-10 17:46:51

在OP走上“永远不删除索引”的道路之前,让我强调一下:永远不要说永远。

有时索引的成本比删除它们要高。有很多方法可以检查这一点,例如 sys.dm_db_index_usage_stats (它可以告诉您具有大量写入活动但很少或没有读取活动的索引)。

与往常一样,您应该在具有实际数据和实际负载的隔离环境中测试您的更改。

Before the OP gets led down a "never remove an index" path, let me state emphatically: Never say never.

Sometimes indexes cost you more than removing them would. There are many ways to examine this, such as sys.dm_db_index_usage_stats (which can tell you indexes that have a high volume of write activity but little or no read activity).

As always, you should test your changes in an isolated environment with realistic data and realistic load.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文