TimesTenキャッシュのパフォーマンスを最適化する

次の推奨事項を実行すると、TimesTen Cacheのパフォーマンスを最適化できる場合があります。

  • ALTER TABLE table_name CACHE文を実行し、Oracle Databaseに対して、TimesTen Cacheメタ表およびキャッシュ・グループ実表がSGAバッファ・キャッシュのKEEP領域に格納される必要があることを示すことで、これらの表をSGAに配置します。SGAにTimesTen Cache表を配置すると、リフレッシュが実行される場合にTimesTen Cacheリフレッシュ操作に必要な任意のデータブロックをSGA内で利用できる可能性が高くなり、ファイル・システムの読取りは行われなくなる可能性が高くなります。これによって、TimesTenキャッシュのリフレッシュ操作時に実行される物理ファイル・システムの読取りの時間が最小になります。

  • dbms_shared_pool.keepプロシージャを使用して、共有プールにTimesTen Cacheトリガーを配置します。キャッシュ・グループ実表を頻繁には更新しないアプリケーションの共有プールにトリガーを配置すると、トリガーが再ロードや再解析の必要性がなくなります。トリガーが頻繁に実行され、常に共有プールに存在しているような揮発性の高い表では、これを行う必要はありません。

  • パラレル問合せを有効にします。1000万以上の行を持つ大規模な実表の場合は、Oracle Databaseのパラレル問合せ機能の使用を検討してください。ログ表と実表の間で行う主結合問合せは、Oracle Databaseのパラレル問合せが処理されるように設計された問合せです。パラレル処理が有効な場合、パラレル問合せオプティマイザは、他のパラレル問合せのワーカー・プロセスで同時に実行できるように元の問合せを分割できる問合せ計画を生成します。パラレル問合せを使用する際、ユーザーは、キャッシュ・グループ実表のデフォルトの並列度である(2*N)を割り当てる必要があります(「N」はシステムのCPUの数です)。次に、ユーザーの環境に最適な並列レベルを確認するための実験を行います。次に示すように様々な表構造の実表で試します。

    • 表の作成時またはALTER TABLE PARALLELコマンドを使用して割り当てられるデフォルトの並列度を持つ標準的なヒープ表を使用します。表に対してNパーティションの主キー索引を構築します。

    • 表の主キーまたは主キーの上位列(主キーが結合されている場合)のいずれかに基づいたパーティション・レンジ・キーを持つ、N通りにパーティション化された表構造を使用します。パーティションの数は、並列度に設定する必要があります。パーティションの数が同じローカル主キー索引を使用します。

    • ハッシュ・キーとして主キーを使用し、ローカルのパーティション化された主キー索引、および並列度と同じ索引パーティションと表パーティションの両方を持つ、N通りにハッシュされたパーティション構造を使用します。ログ表のカーディナリティは、パーティション化されたログ表にパフォーマンス上のメリットがもたらされるほど十分に大きくならないため、ログ表はパーティション化されている必要があります。さらに、ログ表の主キー列の値が増加し続けている場合、レンジ・パーティションは使用できません。

ノート:

これらの推奨事項はどれも、パフォーマンス上のトレードオフがあるため、パフォーマンスを最適化できるとはかぎりません。ユーザー独自の構成環境に応じて、それぞれのパフォーマンス推奨事項を検討し、テストを実施してください。