因为我的D盘数据库空间不多了,只有70G了.
  而我要imp的.dmp文件有67G,只是一个用户下的.它是我用了一天一夜(25个小时)exp导出的.
  它是测试数据库上的数据,有垃圾数据.
  现在我计划:在imp的同时,truncate 一些开发项目时用的表(因为里面有4G容量的垃圾数据).
  请问我这样操作,对数据库的导入,及对数据库的性能有影响吗??   是Oracle  10g
  因为我估计导入时,又要花25个小时,要小心地在旁边看护操作!!
  非常期待,各位的不吝赐教!!
  只要能解决,就结贴!  
  thanks!
  

解决方案 »

  1.   

    如果不想要表结构信息,即可以Drop这个表的话,可以在imp时采用Tables=(tb1,tb2,tb5,tb9..tbn)的方式,只导入(tb1,tb2,tb5,tb9..tbn)这些指定的表.
      

  2.   

    (tb1,tb2,tb5,tb9..tbn)导入列表,将垃圾表排除在外.
      

  3.   

      有380多个table ,210个view   用的是hash组合分区,每月一个分区,我现在要求的是不影响数据库的性能,
    Thanks again!
      

  4.   

    dl110   你说的 (tb1,tb2,tb5,tb9..tbn) 因为我的表太多了.还要看imp的效率,要20多个小时imp  啊
      

  5.   

    数据都已经exp出来了,不好整了啊
      

  6.   

    在exp时,truncate吧。这种更好,减少数据的间隙。
    或者imp之后truncate 。
      

  7.   

     问题还没有解决呀.
      有1498个table,还有1389个view 这些还只是一个常用的user下的数据量.其中一个比较大的表,数据容量有4.8G.
      我就担心的是imp后,再truncate 会影响它的性能.
      Thanks  again! "在exp时,truncate吧。这种更好,减少数据的间隙。"  这种方法我认为不可以,因为exp时,truncate,会删除掉测试数据库里的数据.这不是我的要求.
      问题的关键是:我的数据库容量有限了.  而exp后的.dmp文件有67G,数据量太大
      

  8.   

    使用微软SQL Server的数据导入导出工具,直接将源Oracle的数据导入目标。
      

  9.   

    按你说的,是可以的
    问题是,你的truncate语法必须在你导入对应的表数据后才能执行。实际上,如果没有触发器、存储过程等,你可以分2部分导入
    1、导入需要数据的表
    2、导入不需要数据的表(用参数控制不导入数据)Tables=(tb1,tb2,tb5,tb9..tbn)
      

  10.   

      问题来了:   我truncate  后,表空间并没有回收呀.   现在我的数据库空间只有22.8M了,哎,急呀!!
      我用的是Toad v9.1   它有向导: Truncate Table  
              (这里是单选框)    Reuse storage
                               leaves the space allocated from the deleted 
                               rows           (这里又是单选框) Drop storage
                             Deallocates the space currently used by the deleted
                             rows
                       
               (这里是复选框) Remember my selection      Execute(操作按纽)     Cancle(操作按纽)
       我是选的第二个单选框,并勾选了复选框.可表空间并没有相应地回收.因为这个表的容量有2G呀.
       菜鸟再弱弱地请教:我truncate 一个表后,那个表名还存在,我不用Drop了吧?