自動リフレッシュ・キャッシュ・グループのリフレッシュでリソースの待機時間が長すぎる
自動リフレッシュされるキャッシュ・グループのリフレッシュ中に、Oracleデータベースの更新で過剰なバッファ・ビジー待機、行ロック待機およびデッドロックが発生し、スループット・パフォーマンスに悪影響を及ぼす場合があります。自動リフレッシュログ表を使用するOracle Databaseの更新時に、複数のデッドロックが発生すると、サポート・ログに次のように表示される場合があります。
Oracle native error code = 60, msg = ORA-00060: deadlock detected while waiting for resource An error occurred while preparing or executing the following Oracle sql statement: <some statement involving <cache admin user>.TT_##_#######_L where the # is some number>
INITRANSおよびFREELISTS設定を変更すると、自動リフレッシュ・ログ表への同時挿入および、これらの表の内部管理に影響を与えて、パフォーマンスを向上させることができます。これらの設定が適切に構成されていない場合、自動リフレッシュ中の実表を更新しているアプリケーションのスループット・パフォーマンスが低下します。
これらの設定は、次のように操作すると、自動または手動のいずれかで管理できます。
-
FREELISTSを自動で管理するASSM表領域を使用する。 -
Oracle Databaseの自動リフレッシュ・ログ表に対して、
FREELISTSおよびINITRANSを手動で調整する。
次では、Oracle Databaseの自動リフレッシュ・ログ表のINITRANSおよびFREELISTSを手動で変更する方法の詳細を説明しています。