library cache lock: 待機: ライブラリキャッシュのオブジェクトハンドルをめぐる競合 (解析/DDL のシリアライズ)
Oracle意味
セッションが、ライブラリキャッシュ内のオブジェクト (SQL、PL/SQL、テーブル定義) のロックを待っている。通常は解析処理と DDL 操作のシリアライズが原因。
原因
頻繁に使われるオブジェクトへの DDL (ALTER/CREATE)、頻繁に再コンパイルされる PL/SQL オブジェクト (無効化)、過剰なハードパース、依存オブジェクトの無効化、または大量の同時接続ストーム。
対処方法
ブロッキングセッションとオブジェクトを特定する (v$session、ASH、必要ならライブラリキャッシュロックの診断)。頻繁に使われるオブジェクトへの DDL をピーク時間帯に実行しない。依存関係の連鎖を減らし、不要な再コンパイルを防ぐ。バインド変数を使ってハードパースを減らす。接続プールで接続ストームを平準化する。
同じデータベースの他の項目
- db file scattered read待機: マルチブロックの物理読み取り。通常は全表スキャンまたはインデックス高速全スキャン
- buffer busy waits待機: 別セッションが読み取り中または変更中のバッファをめぐる競合
- gc buffer busy待機 (RAC): インスタンス間で転送中のキャッシュフュージョンブロックをめぐる競合
- ORA-00604error occurred at recursive SQL level(再帰 SQL レベルでエラーが発生)
- ORA-01438value larger than specified precision allowed for this column(列の精度を超える値)
- ORA-01400cannot insert NULL into (column)(列に NULL は挿入できない)
- ORA-02291integrity constraint violated - parent key not found(整合性制約違反 - 親キーがない)