關於library cache lock和row cache lock產生的常見原因


這兩個等待事件其實很少出現在top5列表中,一般都沒什么印象,在此整理記錄以便以后查閱。

常見的library cache lock產生的原因在《高級OWI與Oracle性能調查》這本書和下面這個文檔中有一般性的描述:
Troubleshooting Library Cache: Lock, Pin and Load Lock (Doc ID 444560.1)
一般可以理解的是alter table或者alter package/procedure會以X模式持有library cache lock,造成阻塞。

而row cache lock是在修改行高速緩沖區(dictionary cache)時產生,其中最典型的代表是Sequence(設置cache屬性)。

 

但是常見的問題還有以下幾種原因:
1)錯誤的用戶名密碼:  要注意查看AWR中的 “connection management call elapsed time”
2)Oracle Recyclebin 引起的 library cache lock 和 row cache lock 事件

3)BulkCopy觸發索引被禁用及liibray cache lock事件(異常情況下索引狀態無法自動恢復為啟用狀態)
4)正在執行搜集統計信息,這是大家往往會忽略的,一般會看last_ddl_time,卻忽略了last_analyzed

5)錯誤的語句解析(failed parse) 這是通常很難注意到的一個問題,因為被解析的語句往往在AWR中找不到(因為沒有通過parse),要注意查看AWR中的“failed parse elapsed time”

另外,可能就是觸發了Oracle的bug。。。

 

幾種常見的library cache lock產生的原因

library cache lock和cursor: pin S wait on X等待

Oracle recyclebin引起library cache lock事件

回收站(recyclebin)引發row cache lock

BulkCopy觸發索引禁用及libray cache lock等待事件

Oracle觸發bug(cursor: mutex S),造成數據庫服務器CPU接近100%

Oracle11g的delayed failed logins特性引起的性能問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM