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。适用于查看索引是否被正在的使用上。

时间: 2024-11-10 07:48:23

Oracle index unusable和invisible的差别的相关文章

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 unu

Oracle 11g新特性invisible index(不可见的索引)

如果一张表上有十几个索引,你有什么感受?显然会拖慢增.删.改的速度,不要指望开发人员能建好索引.我的处理方法是先监控很长的一段时间,看哪些索引没有用到,然后删除.但删除以后,如果发现某一天有用,那又要重新建,如果是大表,那就有些麻烦.现在11g提供一个新特性,不可见索引,可以建索引设置为不可见索引,CBO在评估执行计划的时候会忽略它,如果需要的时候,设置回来即可. 还有一种用途,你在调试一条SQL语句,要建一个索引测试,而你不想影响其他的会话,用不可见索引正是时候. SQL> drop tabl

Bulkcopy对应的实现是Oracle的SQL*LOADER,期间造成Index Unusable,并且last_ddl_time上是不体现的

导致索引失效的直接原因:当某些操作导致数据的rowid改变,索引就会完全失效. 那什么时候会导致rowid改变使得索引unuseable或者invalid呢? 一般普通表在在如下3个情况下可以使index unusable 1) 手动alter index unusable 2) Move [alter table move][alter table t02 move tablespace tbs01;]包括分区操作 3) sqlldr [sqlldr ( parallel or direct

ORACLE不可见索引(Invisible Indexes)

不可见索引概念 不可见索引(Invisible Index)是ORACLE 11g引入的新特性.不可见索引是会被优化器忽略的不可见索引,除非在会话或系统级别上将OPTIMIZER_USE_INVISIBLE_INDEXES初始化参数显式设置为TRUE.此参数的默认值是FALSE.如果是虚拟索引是为了合理.科学新增索引而设计的,那么不可见索引就是为了合理.科学的删除索引而设计的.为什么这样说呢? 因为DBA在维护索引时,我们经常会找出无用或低效的索引,并删除这些索引,在生产环境下,删除索引还是有一

ORACLE Index Lookup索引访问路径总结

在ORACLE中,索引访问/查找(Index Lookup)路径有五种方式,分别为INDEX UNIQUE SCAN.INDEX RANGE SCAN.INDEX FULL SCAN.INDEX FAST FULL SCAN .INDEX SKIP SCAN.下面通过一些案例介绍.总结一下这五种索引访问路径.本文是总结这方面的知识点,所以文中一些地方参考.引用了参考资料中的部分内容.详细.具体资料可以参考官方资料Index Scans 索引唯一扫描(INDEX UNIQUE SCAN)   索引

Oracle 中UNDO与REDO的差别具体解释

一 为了更清楚的看出2者差别,请看下表: UNDO                                                                   REDO Record of How to undo a change How to reproduce a change Used for Rollback, Read-Consistency Rolling forward DB Changes Stored in Undo segments Redo log

Oracle中NVARCHAR2与VARCHAR2的差别

NVARCHAR2在计算长度时和字符集相关的: 比如数据库是中文字符集时以长度10为例, 1.NVARCHAR2(10)是能够存进去10个汉字的.假设用来存英文也仅仅能存10个字符. 2.而VARCHAR2(10)的话,则仅仅能存进5个汉字,英文则能够存10个. 注:二者字节上线都是4000.注意大小设置不要溢出.

ORACLE日常操作手册

转发自:http://blog.csdn.net/lichangzai/article/details/7955766 以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语句写法,适合初学者. 因是很久之前写的,文章中可能会存在不准确的地方,希望指正. ORACLE日常操作手册 目录 一.......数据库的启动和关闭...4 1.   数据库的正常启动步骤...4 2.   数据库的正常关闭步骤...4 3.   几种关闭数据库方法对比...4 4.   数据库的启

Oracle常见死锁发生的原因以及解决方法

Oracle常见死锁发生的原因以及解决办法 一,删除和更新之间引起的死锁 造成死锁的原因就是多个线程或进程对同一个资源的争抢或相互依赖.这里列举一个对同一个资源的争抢造成死锁的实例. Oracle 10g, PL/SQL version 9.2 CREATE TABLE testLock(  ID NUMBER, test VARCHAR(100)  ) COMMIT INSERT INTO testLock VALUES(1,'test1'); INSERT INTO testLock VAL