Oracle  运行游标时刚开始能达到 8/S 的速度,过几分钟后,可达到 16/S 的处理速度.可是过了半小时后却只达到 4/S 的速度,这这!!!!!哎上次我刚开始运行时也是 8/S 的处理速度,过几分钟后,可达到期 16/S 的处理速度,再过半小时已能达到 160/S 的处理速度.过一小时后基本上是稳定期了,350~390/S 的处理速度.包我是未做修改呀.为什么会出现这样的问题呢???我处理约有400万数据,把400万数据读出后运算再写到数据库!!!!!!所以我才选择了游标处理方式.出现上面的现象是什么问题呀,我真不明白.我现已跑过几次了,每次都是第一种情况.不解!!!!!!!!!!1
第二种情况只跑过一次!!!!1

解决方案 »

  1.   

    服务器只有一个连接吗?其他会话是否与你抢资源?看看服务器是忙在什么地方,CPU还是IO
      

  2.   

    我的程序结构体(不注重语法.)变量全在上面声明
    loopselect sum(ds) into tr from sa whre as = 25 and sa <= 5697;if tr > 5 then
    insert dus values (tr,da,'T');
    else
    update dus set tg = tr where das = da;
    end if;
    ...
    commit();
    end loop我和循环体数运算结构大致如上.
      

  3.   

    表是否都有合适的索引?dus表必须要有das字段的索引。曾经快现在慢可能是操纵的表数据发生了变化。
      

  4.   

    在执行循环体时,CPU使用率:90%以上,但有时是17%左右,但时间很短.有没有那位老鸟知道是什么原因呀我都真是快被给搞死了,哎
      

  5.   

    最好是用statspack生成报告,找出占CPU资源高和执行时间长的SQL。
      

  6.   

    statspack  ??我没有听过,能否指点一二!!!!我是8.16的数据库,谢了你的提议很有道理!!!1
      

  7.   

    8i的statspack没做过,你看看rdbms/admin下面是否有spcreate脚本,9i就是执行那个脚本创建statspack相关的包和表。需要有一个空闲空间在500M左右的表空间存放statspack有关的表记录。