我刚刚了解到可以在表上禁用索引。甚至可以禁用聚集索引。此后,用户将无法访问索引或聚集索引中的数据。我们什么时候会禁用索引?我只是不明白用例。
AMt*_*two 19
当您将(或可能)需要替换索引时,禁用索引(或表上的所有索引)可能非常方便。
例如,如果您要删除一个(看似)重复的索引,您可以禁用该重复项并将其禁用一段时间,同时确认可以永久删除它。如果您发现需要它,您可以简单地重新启用它,而无需知道完整的定义。您仍然需要进行完全重建,但不需要记住/保存定义。
同样,对于您可能希望在不维护索引的情况下加载的数据加载,您可以更轻松地动态禁用所有索引,然后重新启用它们,而不必完全保留索引定义,就像删除并重新创建索引一样。
AMtwo 很好地覆盖了非聚集索引。
至于聚集索引,这是一件非常奇怪的事情。我能想到的唯一潜在用例是,如果您想确保没有人可以访问数据。当然,如果有足够的权限,您可以再次启用(重建)它并访问数据。所以,我怀疑您是否会将其视为一项安全功能。最后,它可能只是暴露给我们的东西,最初是在 SQL Server 内部使用的,用例非常有限(如果有的话)。
请注意,如果禁用聚集索引,则所有非聚集索引以及引用该表的外键也会被禁用!
如果由于某种原因您不希望该视图产生存储开销,并且稍后想要启用它,则在视图上禁用聚集索引可能会很有用(感谢 Paul)。请注意,禁用索引时,对该视图使用 NOEXPAND 提示的查询将会失败。
| 归档时间: |
|
| 查看次数: |
2998 次 |
| 最近记录: |