Oracle index unusable和invisible的差别

Posted brucemengbm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle index unusable和invisible的差别相关的知识,希望对你有一定的参考价值。

摘录自11g的官方文档:

     UNUSABLE Specify UNUSABLE to mark the index or index partition(s) or index subpartition(s) UNUSABLE. The space allocated for an index or index partition or subpartition is freed immediately when the object is marked UNUSABLE. An unusable index must be rebuilt, or dropped and re-created, before it can be used. While one partition is marked UNUSABLE, the other partitions of the index are still valid. You can execute statements that require the index if the statements do not access the unusable partition. You can also split or rename the unusable partition before rebuilding it. Refer to CREATE INDEX ... UNUSABLE for more information.

      An index that is not maintained by DML operations and is ignored by the optimizer. All indexes are usable (default) or unusable.

     VISIBLE | INVISIBLE  Use this clause to specify whether the index is visible or invisible to the optimizer. An invisible index is maintained by DML operations, but it is not be used by the optimizer during queries unless you explicitly set the parameter OPTIMIZER_USE_INVISIBLE_INDEXES to TRUE at the session or system level.

     unusable index 是被优化器所忽略,而且不被dml操作维护,假设索引被unusable后。须要重建。

     invisible index会被优化器所忽略,可是dml操作仍然会维护索引。在session或者system级别使用參数OPTIMIZER_USE_INVISIBLE_INDEXES=true。那么优化器会考虑使用invisible index。适用于查看索引是否被正在的使用上。





以上是关于Oracle index unusable和invisible的差别的主要内容,如果未能解决你的问题,请参考以下文章

Oracle—deallocate unused释放高水位空间

SQL Server中如何识别查找未使用的索引(unused indexes)

SQL Server中如何识别查找未使用的索引(unused indexes)

oracle外表

oracle 常用随笔

Oracle重做日志组状态及切换解析