一次Row Cache Lock問題處理過程

tian1982tian發表於2011-09-04
環境 作業系統:AIX小機  5.3.0.8       資料庫:Oracle 10G R2 RAC
 現象:
      資料庫奇慢,插入70萬條資料到臨時表得1個小時還沒完成,SELECT .... FROM WHERE .....語句邏輯簡單
處理過程:
      先查動態效能檢視v$session_wait發現很多recyclebin的等待、row cache lock 等待、libraray cache lock等待等等;
      查alert日誌什麼錯誤都沒發現;
      生成awr,Top 5發現有row cache lock等待和解析執行時間倒序(從大到小的)語句delete recyclebin ...,如下圖:
然後就做了實驗,一次少插入點,逐漸的增多,但是插入了好長時間還沒插入完70W條資料,最後根據動態效能檢視和awr報告,關閉了recyclebin alter system set recyclebin=FLASE,等再插入資料的時候資料庫就報錯了,說是表空間不足,然後我就
1:purge了回收站:purge recyclebin;
2:增加表空間大小,
     alter tablespace t_space add datafile '/u01/oradata/rrc_t06.dbf' size 30720M auto extend off;
     alter tablespace t_space add datafile '/u01/oradata/rrc_t07.dbf' size 30720M auto extend off;
等了10分鐘再去插入資料時候居然很開的插進去了,插入成功,且速度很快。
 
總結:
      在沒有purge回收站內容時候插入一點資料,oralce 自動維護回收站,刪除回收站一部分進入表空間比較早的object,故速度很慢也不會報錯,且等會就能先前不能插入的資料插入到表中,但我關閉回收站後插入資料oralce不能自動清理回收站內的object,就會報錯說是表空間不足,然後再purge recyclebin和增加資料檔案後漸漸的就可以把資料插入到資料庫中,但是還有一個問題我比較疑惑:問什麼在報表空間不足的時候我查詢表空間情況居然還沒滿,難道此使用者下的物件(recyclebin裡的)所佔空間不在表空間裡顯示出來?
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16400082/viewspace-706628/,如需轉載,請註明出處,否則將追究法律責任。

相關文章