Local Meta Cache制限機能は、長時間アクセスしていないLocal Meta Cacheを削除することでサイズを制限する機能です。
SQLがアクセスする定義のうち、Local Meta Cacheを肥大化させる主な要因は、テーブルとインデックスです。さらに、テーブルのカラムの定義もまたカタログキャッシュとして保持されます。
例えば、ある1つの寿命の長いコネクションを様々な業務で共用するようなシステムでは、1つのコネクション(すなわちバックエンドプロセス)が、多数のテーブルにアクセスすることになります。このようなコネクションが3,000本あり、各コネクションが、50,000個のテーブルにアクセスした場合には、3,000個のバックエンドが消費するメモリサイズの合計が数TBになるかもしれません。
そのようなときに、本機能を使用すると数十GB程度に削減できる可能性があります。
注意
本機能は、Advanced Editionのみで使用できます。
Local Meta Cache制限機能の仕組み
本機能有効時のキャッシュ戦略は、指定された上限値の範囲内で可能な限りキャッシュを保持することです。もし、新しいキャッシュを保持することで、上限値を超えるのであれば、参照の局所性を考慮して、参照されていない時間が最も長いキャッシュから順に削除します。
しかし、アクティブなトランザクションが使用しているキャッシュを削除することはできないので、1つのトランザクションで多数のキャッシュを使用する場合には、上限値を超えてキャッシュを保持することもあります。この場合には、トランザクションの終了時にキャッシュを削除します。
参照
Local Meta Cache制限機能はデフォルトで無効になっています。この機能を導入するかどうかの判断方法および使用方法は、“運用ガイド”の“Local Meta Cache制限機能”を参照してください。