SQL
-- 仅在当前会话(您的窗口)中,允许使用不可见索引
ALTER SESSION SET optimizer_use_invisible_indexes = true;
然后您跑一下那个定时任务的 SQL,看看是不是真的变快了。确认完美无误后,再全局放开:ALTER INDEX ... VISIBLE;。这叫“无痛上线”。
直接 DROP 的灾难: 刚删完,财务部打电话来说月底结账的报表跑不出来了(原来那个报表一年只用一次,正好依赖这个老索引)。这时候您想重新建,得花几个小时,您肯定要背锅。
有了 INVISIBLE 的优雅操作: 您不删它,而是执行 ALTER INDEX IDX_OLD_01 INVISIBLE;。
把它隐藏起来。如果过了一个星期,没有任何人打电话来骂人,说明它真的没用,这时候您再放心大胆地 DROP 掉。如果刚隐藏十分钟就有人报障,您只需 0.1 秒执行 ALTER INDEX ... VISIBLE;,一切瞬间恢复原状。