執行計劃問題導致處理速度時快時慢的問題

sundog315發表於2011-09-22

今天百貨那邊同事反映,在前臺銷售商品時,出現了時快時慢的情況,一個小票的列印時間,從零點幾秒到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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章