请教大家,我之前会批量往oracle数据库里写数据,但是自从我删除了一个几千万的表之后,写入数据的速度就变得特别特别慢,大家知道是什么原因吗?  小弟不胜感激!!!!

解决方案 »

  1.   

    有碎片   truncate一下
      

  2.   

    可是那个表都已经删了啊,我truncate哪个表呢?
      

  3.   

    该表空间的FSFI为2.83953095885923是不是太小了?
    如何增大?我用了alter tablespace XXX coalesce;但没有效果
      

  4.   

    我在下午的时候,重新导入了数据库,发现一个现象,就是当我去掉主键的时候,往数据库里写东西是会有问题的,而加上了主键就没有问题了。
    执行的存储过程如下: if devtxxh = 1 then
               INSERT INTO ITS_NX_CPK_TP (jlbh,txxh,qjtx1,qjtx2,qjtx3,qjtx4,jgsj,cplj) values           (devjlbh,devtxxh,devqjtx1,devqjtx2,devqjtx3,devqjtx4,to_date(devjgsj,'yyyy-mm-dd hh24:mi:ss'),devcplj);
              
            elsif devtxxh = 2 then
              update ITS_NX_CPK_TP set qjtx2 = devqjtx2 where jlbh=devjlbh;        elsif devtxxh = 3 then
              update ITS_NX_CPK_TP set qjtx3 = devqjtx3 where jlbh=devjlbh;
        
            elsif devtxxh = 4 then  
              update ITS_NX_CPK_TP set qjtx4 = devqjtx4 where jlbh=devjlbh;        end if;
    commit;
       EXCEPTION
         WHEN OTHERS THEN
           INSERT INTO ITS_NX_CPK_TP (jlbh,txxh,qjtx1,qjtx2,qjtx3,qjtx4,jgsj,cplj) values           (devjlbh,devtxxh,devqjtx1,devqjtx2,devqjtx3,devqjtx4,to_date(devjgsj,'yyyy-mm-dd hh24:mi:ss'),devcplj);
           commit;
    当我去掉主键的时候,devtxxh 等于几,都是执行的insert。而加上主键就正常了。