医保查询每天第一次非常慢,之后就越来越快恢复正常 我们医院的系统7月份从8I升级到11G,之前用的医保对照系统都正常,查询都很快。升级后就发现每天第一次是非常慢的,往往超过半个小时,之后就越来越快。不知道什么原因。按理说ORACLE是sql查询第一次慢,之后由于sql会存于语言池就越来越快,但是这个系统却是每天都如此循环。请各位帮忙看看 可能出问题是哪方面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 查看一下SGA参数配置 适当调整 跟这个有关系吗,目前是32G内存 16G SGA 数据库从10g开始每天会有一个定时任务定时分析表里的数据,以确定执行计划的执行(cbo)8i的查询是基于rbo的,没有定时任务分析表中数据,怀疑是这个问题。 对数据库表进行analyze,oracle根据统计结果进行执行计划的制定,有可能会不走你预先想让他走的索引。但是随着查询的进行缓存中数据的增加,执行速度又上升了。 这个好象是正常现象。数据库每天都重启么?如果每天重启或者每天定时清空一些缓冲区的话,它会把头一天存在缓存里的已经分析好的SQL之类的,都清除掉,然后每天第一次运行的时候,再针对SQL进行重新分析。这样真的是很慢的。 我也是做医院信息管理系统的,楼主的问题跟我以前遇到的问题有类似之处,我们之前重装ORACLE,导入数据后,程序里有某些地方第一次操作时都比较慢,之后就快了。对于这种问题可能是ORALCE的统计信息没有更新,更新一下统计信息应该就可以解决了。操作如下在PL/SQL里执行以下存储过程begin dbms_stats.gather_schema_stats ('hospital',dbms_stats.auto_sample_size);end;希望对你有帮助! 再次说明 hospital 是指用户名 存储过程中 在循环中 捕获异常 之后 继续循环怎么做? Sql:在一张表求出迟到及正常的信息 ORA-12154: TNS:无法解析指定的连接标识符 Oracle中向表中插入数据错误 请教牛人,如何用 sql语句实现? oracle全文搜索引擎的问题 ORCALE 中跨版本数据恢复要注意哪些问题 Oracle定时器执行存储时异常 紧急求助!关于oracle的查询语句问题 使用rman的时候如何使用restore恢复到指定的时间点? Oracle10g 数据库实例无法启动的问题 自动启动数据库
跟这个有关系吗,目前是32G内存 16G SGA
8i的查询是基于rbo的,没有定时任务分析表中数据,怀疑是这个问题。
但是随着查询的进行缓存中数据的增加,执行速度又上升了。
数据库每天都重启么?如果每天重启或者每天定时清空一些缓冲区的话,它会把头一天存在缓存里的已经分析好的SQL之类的,都清除掉,然后每天第一次运行的时候,再针对SQL进行重新分析。这样真的是很慢的。
在PL/SQL里执行以下存储过程
begin
dbms_stats.gather_schema_stats ('hospital',dbms_stats.auto_sample_size);
end;希望对你有帮助!