有一个数据量为1亿的表.由于没有进行分区,要进行一下处理.
测试如下:
如表A
1.先建立一个同结构表:A_TEMP
2.将A改名为A_OLD
3.将A_TEMP改名为A.
但是我发现这个后来的A表用了原来的表的索引.不知道什么原因.后来考虑另外一个办法.
开辟一个新的表空间.将原用户下的表的数据导入到新的表空间下.
然后删除旧表.
创建新表.
将旧表数据倒回到新表下.
此方案我觉得可行.
但是担心的是drop旧表和索引的时候会不会很慢,影响业务的运行.
如有触发器的内容是否要考虑停掉trigger,再进行操作.
有经验帮看一下.

解决方案 »

  1.   

    改动A后,原A索引依然存,A表变动后,可以rebuild index;第二方法可以使用另一台机中装入Oracle,导入原imp文件,等完全测试没问题后再删、建。
      

  2.   

    第一个朋友.重建索引的话,就是说要将原来的表的索引要drop掉吧.
    有点象是两个指针指向同一块存储空间的意思了.
      

  3.   

    还是没有回答drop大表的过程中的风险.担心删除表出现问题后,如何来解决呢
      

  4.   


    先备份数据或导出来,再truncate table tablename,再drop table
      

  5.   

    参考这个文章:
    http://jimmyhe1981.itpub.net/post/19858/222663
      

  6.   

    那么大的估计备份起来不方便。
    truncate table不用写redolog了。会快很多
      

  7.   

    这么大的表先trucate,再drop
    和直接drop有什么区别么