我有一张表,该表有一个主键,每次都要向该表插入上百万条数据,而且在插入数据之前必须清空表,请问如何做才能更高的提高数据性能,防止空间及其它资源的浪费

解决方案 »

  1.   

    往主键表(或索引表)中插入上万条数据时的处理方法,可以先删掉索引,往表里面插入数据,再建上主键即可。
    插入数据量漏较大时时以用/*+append */直接插入到表的最后,可以提高执行效率!
      

  2.   

    Truncate table 表名;   //用于清除表中所有记录
    然后在插入新的记录,建立相关的索引等!
      

  3.   

    Truncate table 表名,用这个清空表会比较快,不过要用动态SQL执行才行,
    另外可以考虑分批Commit
      

  4.   

    Truncate table 表名,
    insert 是用并行插入,
    最后add constraint 主键
    好像这样速度较快,
      

  5.   

    首先truncate表,再删掉其主键,往表里面插入数据后,再加上主键,不过这种做法,
    对于几百万的表而言,可能会存在风险!
      

  6.   

    分批commit有时会好点,但是有时最后提交与分批提交相差也不是很多,这个得自己实验一下具体多少行commit一次
      

  7.   

    删除数据的时候可以使用TRUNCATE TABLE,这个命令因为不写日志,所以删除数据的时候很快,
    插入数据的时候可以先将主键删除,插入数据后再添加主键。