ITPub博客

首页 > 数据库 > Oracle > 执行计划问题导致处理速度时快时慢的问题

执行计划问题导致处理速度时快时慢的问题

原创 Oracle 作者:sundog315 时间:2011-09-22 15:44:03 0 删除 编辑

今天百货那边同事反映,在前台销售商品时,出现了时快时慢的情况,一个小票的打印时间,从零点几秒到100多秒不等,如果哪个顾客赶上了,可能买一包方便面都会等2分钟。这个情况已经持续了两三天了

由于此系统前段时间由单机转为了RAC,同事怀疑因为RAC的配置或是IO问题导致了这种情况。确实,对于非数据库的很多情况,IO负载的轻重变化确实容易导致时快时慢的现象。

做AWR麻烦,直接登录到数据库中看,有一个SQL在v$session中比较容易出现db sequence read等待,直接看v$sql,有两个child number,其中有一个child_number等于3的SQL buffer_gets非常高,看执行计划,选择了一个多列主键索引的跳跃扫描。

看到这个,也就有解决方案了,改程序来不及,直接在操作系统禁用跳跃扫描

alter system set '_optimizer_skip_scan_enable' = false;

出现这个情况的原因,应该是统计信息发生了变化(系统设定定时任务,3天重新收集统计信息)导致执行计划发生了改变。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19423/viewspace-1055259/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-01-05

  • 博文量
    126
  • 访问量
    540253