oracle索引:
问题一:1.我的期望(目的是):期望仅新创建的index_user索引生效,原索引仅作备份(还原方便),不起作用!
              2.问题描述:已有索引名称为index_user,,如果我仅将该索引名称改为index_user_bak,(索引内容本身不变),再新建索引index_user(和原index_user创建语句完全一样),请问:1.对于对应的表,实际生效的是哪个索引:index_user_bak和index_user?还是仅index_user?还是其它(如:报错)?问题二:如果重建索引(因为有大批量的数据删除操作),执行完下面的命令:
ALTER INDEX index_user REBUILD;(ALTER INDEX index_user REBUILD COMPUTE STATISTICS; )
如果要索引马上生效,还需要做其它操作吗?(如: 更新统计信息: execute dbms_stats.gather_table_stats)     分虽然不多,但诚意满满的,谢谢亲了!

解决方案 »

  1.   

    @wmxcn2000:老大:
    问题1:是具体何种情况啊? (我需要的是仅新创建的index_user索引生效哦,这么可以么?还是必须先将原索引文件删除,再创建相同的索引文件呢?)
    问题2:只通过上面命名重建索引不会立刻生效么?(如果不手动更新统计信息,是否oracle有自己的job在某个时间段执行后,也会生效呢?)
      

  2.   

    -- 问题一SQL> 
    SQL> create table test(id int, name varchar2(10)) ;
    Table created
    SQL> create index ix_test on test(id) ;
    Index created
    SQL> alter index ix_test rename to ix_text_1 ;
    Index altered
    SQL> create index ix_test on test(id) ;
    create index ix_test on test(id)
    ORA-01408: 此列列表已索引
    SQL> drop table test purge ;
    Table droppedSQL>