今天百货那边同事反映,在前台销售商品时,出现了时快时慢的情况,一个小票的打印时间,从零点几秒到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博客 ” ,链接:http://blog.itpub.net/19423/viewspace-1055259/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19423/viewspace-1055259/