Oracle Databaseへの動的ロードの自動パススルー
TT_DynamicPassthrough
オプティマイザ・ヒントを設定して、WHERE
句なしで作成されたキャッシュ・グループの適格なSELECT
文をOracle DatabaseにパススルーするようにTimesTen Classicに通知します。
アプリケーションがTimesTen接続に対して文を発行すると、その文をTimesTenデータベースで実行したり、Oracle Databaseにパススルーして解決できます。Oracle Databaseにパススルーされた場合、結果は返されますが、キャッシュ・インスタンスはロードされません。文をTimesTenデータベースまたはOracle Databaseのいずれで実行するかは、文の構成およびPassThrough
接続属性の設定によって決まります。
TimesTen Classicでは、WHERE
句なしで作成されたキャッシュ・グループについて、Oracle Databaseからキャッシュ・インスタンスに動的にロードされる行の数を制限できます。TT_DynamicPassthrough
(N
)オプティマイザ・ヒントを設定できます。Nは、キャッシュ・インスタンスにロードできる行数の制限です。Oracle Databaseに対するSELECT
文で、行数がN
を超える結果が返された場合、文はOracle Databaseにパススルーされ、結果はキャッシュ・インスタンスにロードされません。
デフォルトでは、動的ロードの対象となるキャッシュ・グループの動的ロードのSELECT
文はTimesTen Classicデータベースで実行され、キャッシュ・インスタンスのすべての行がロードされます。また、オプティマイザ・ヒントを指定してN
=0を設定すると、すべての行がTimesTen Classicデータベースのキャッシュ・インスタンスにロードされます。
このオプティマイザ・ヒントは、接続および文レベルのヒントとしてサポートされています。
文レベルのヒント:
/*+TT_DynamicPassThrough (1)*/
接続レベルのヒント:
OptimizerHint = TT_DynamicPassThrough (1)
次の例は文レベル・オプティマイザ・ヒントで、SELECT
文で動的ロードによって1000行以上が返された場合のSELECT
文の動的パススルーをOracle Databaseにリクエストします。
SELECT /*+ TT_DynamicPassThrough(1000)*/ ...
「パススルー・レベルの設定」を参照してください。
『Oracle TimesTen In-Memory Database SQLリファレンス』の「オプティマイザ・ヒント」および『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「オプティマイザ・ヒントを使用して実行計画を変更する」を参照してください。