読み取り/書き込みが多いOracle10gテーブルでは、すべてのCPUを使用して「ラッチライブラリキャッシュ」を引用する同時実行数が急増することがあります。
データベース内の負荷を軽減するためにどのようなアプローチを取ることができますか。私たちは無料のリストとそれらを増やすことについてのものを見てきました。その他の意見。
読み取り/書き込みが多いOracle10gテーブルでは、すべてのCPUを使用して「ラッチライブラリキャッシュ」を引用する同時実行数が急増することがあります。
データベース内の負荷を軽減するためにどのようなアプローチを取ることができますか。私たちは無料のリストとそれらを増やすことについてのものを見てきました。その他の意見。
「ラッチ ライブラリ キャッシュ」は、特定のテーブルで I/O が高いかどうかとは関係ありません。これは、解析された SQL ステートメントのキャッシュをラッチで待機していることを意味します。したがって、これらのスパイクが見られる場合は、異常な数のハード パースが発生している可能性があります。
これの最も一般的な理由は、バインド変数を使用していないため、異なる値を持つ多くの同様のステートメントをハード解析していることです。たとえば、次のようなステートメントを実行しています。
SELECT name FROM emp WHERE empid = 3;
クエリが実行されるたびにリテラル ID 値が変更され、新しいステートメントが解析されます。リテラルをバインド変数に置き換え、実行ごとに新しい値をバインドすることをお勧めします。これを達成する正確な方法は、データベースに対してステートメントを実行するために使用している言語/ライブラリ/環境によって異なります。