My Oracle Support Banner

'library cache lock'待機: 原因と対処方法 (Doc ID 2087456.1)

Last updated on SEPTEMBER 28, 2020

適用範囲:

Oracle Database - Personal Edition - バージョン 8.1.7.4 以降
Oracle Database - Standard Edition - バージョン 8.1.7.4 以降
Oracle Database - Enterprise Edition - バージョン 8.1.7.4 以降
この文書の内容はすべてのプラットフォームに適用されます。
本文書利用上のご注意
  本文書は英語の文書 <Document 1952395.1> (最終メジャー更新日: 2018年8月4日) の日本語翻訳版です。
  英語の文書のメジャー更新に応じて本文書を随時更新いたします。

目的

 'library cache lock'での待機のトラブルシューティングについて解説します。

NOTE: この文書内の情報はOracle Performacne Diagnostic Guide (OPDG)から抽出したものです。:

<Document 390374.1> Oracle Performance Diagnostic Guide (OPDG)

OPDGには他の待機の診断方法も含まれています。

トラブルシューティングの手順

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


本書の内容
目的
トラブルシューティングの手順
 library cache lock 待機
 原因: リテラル(定数)の使用によりSQLが共有されていない
 対処方法: バインド変数を使用したSQL文に書き換える
 対処方法: CURSOR_SHARINGパラメータを使用する
 原因: SQL文の除去(aged out)
 対処方法: 共有プールのサイズを拡張する
 対処方法: 10g+: 自動共有メモリ管理(ASMM)の機能を利用して共有プールのサイズを調整する
 対処方法: 頻繁に使用されるサイズの大きなPL/SQLオブジェクトやカーソルを共有プールにキープ("pin")する
 原因: ライブラリ・キャッシュ・オブジェクトの無効化
 対処方法: 負荷が高い時間帯にDDL文を実行しない
 対処方法: 負荷が高い時間帯に統計情報の収集を行わない
 対処方法: 負荷が高い時間帯にTRUNCATEを行わない
 原因: 複数セッションにまたがるオブジェクトのコンパイル
 対処方法: 負荷の高い時間帯、あるいは複数セッションから同時にオブジェクトのコンパイルを行わない
 原因: 監査が有効になっている
 対処方法: 監査の必要性を再考する
 原因: RAC環境でSQLが共有されていない
 対処方法: バインド変数を使用したSQL文に書き換える
 対処方法: CURSOR_SHARINGパラメータを使用する
 原因: 行トリガーの多用
 対処方法: 行トリガーの必要性を再考する
 原因: 大量の子カーソルの生成
 対処方法: CURSOR_SHARING=SIMILARの使用が適切かを確認する
参照情報

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.