我有大批量数据要导到一张表里,为了加快导入的速度,我想先把表上的索引先禁用,等导完数据再起用。不知道oracle的索引能否disable等操作,如果能,怎么操作?谢谢!!!

解决方案 »

  1.   

    alter index your_index unusable;
      

  2.   

    可以这样做:删除索引,导入数据,然后重建
    drop index pk_dept;
      

  3.   

    continue:alter session set skip_unusable_indexes=true;
    insert ....
    alter index ... rebuild.
      

  4.   

    先drop index ...
    再create index on ... 这样做是可以的,但不主张这样使用;
    因为有索引在一般是可以提高速度的。
      

  5.   

    目前没有这么好的方法,因为如果你disable了index,数据insert后,index就没有跟着变化,岂不是index已经不对了。
    所以,只能:
    drop index或者unusable index,insert数据后再rebuild index。
      

  6.   

    索引被unusable ,删除索引,在数据insert上速度相当吗?
      

  7.   

    insert的时候没有区别。
    但是delete index后,只能create index。
    而unusable后,可以简单的alter index ....rebuild;方便啊。
      

  8.   

    回答楼主的表面问题,索引能disable
    在insert的时候,没有区别,想加快速度,可以考虑insert/*+append */的方法。
    直接加载,减少重做日志以加快速度
      

  9.   


    就是说,我把索引状态改为unusable,在insert 大批量数据时,速度跟没建索引前是一样的,可以这样理解吗?