我们医院的系统7月份从8I升级到11G,之前用的医保对照系统都正常,查询都很快。升级后就发现每天第一次是非常慢的,往往超过半个小时,之后就越来越快。不知道什么原因。按理说ORACLE是sql查询第一次慢,之后由于sql会存于语言池就越来越快,但是这个系统却是每天都如此循环。请各位帮忙看看 可能出问题是哪方面

解决方案 »

  1.   

    查看一下SGA参数配置 适当调整
      

  2.   


    跟这个有关系吗,目前是32G内存 16G SGA
      

  3.   

    数据库从10g开始每天会有一个定时任务定时分析表里的数据,以确定执行计划的执行(cbo)
    8i的查询是基于rbo的,没有定时任务分析表中数据,怀疑是这个问题。
      

  4.   

    对数据库表进行analyze,oracle根据统计结果进行执行计划的制定,有可能会不走你预先想让他走的索引。
    但是随着查询的进行缓存中数据的增加,执行速度又上升了。
      

  5.   

    这个好象是正常现象。
    数据库每天都重启么?如果每天重启或者每天定时清空一些缓冲区的话,它会把头一天存在缓存里的已经分析好的SQL之类的,都清除掉,然后每天第一次运行的时候,再针对SQL进行重新分析。这样真的是很慢的。
      

  6.   

    我也是做医院信息管理系统的,楼主的问题跟我以前遇到的问题有类似之处,我们之前重装ORACLE,导入数据后,程序里有某些地方第一次操作时都比较慢,之后就快了。对于这种问题可能是ORALCE的统计信息没有更新,更新一下统计信息应该就可以解决了。操作如下
    在PL/SQL里执行以下存储过程
    begin
      
    dbms_stats.gather_schema_stats ('hospital',dbms_stats.auto_sample_size);
    end;希望对你有帮助!
      

  7.   

    再次说明 hospital 是指用户名