キャッシュのインデキシング
TDV には、キャッシュされたデータにインデックスを作成するためのオプションがいくつかあります。キャッシュからデータのサブセットをフィルタリングして表示するために特定のカラムが共通に使用される場合、データのインデキシングを行うとパフォーマンスを向上させることができます。インデックスを追加すると、キャッシュ更新のパフォーマンスが低下する可能性がありますが、キャッシュ結果の取得のパフォーマンスは向上する可能性があります。
実装するキャッシュ オプションに応じて、さまざまなインデキシング オプションを使用できます。
• | フル リフレッシュ タイプのキャッシュの場合、キャッシュ更新の前後に実行するスクリプトを指定できます。これらのスクリプトのそれぞれに、キャッシュされたデータのインデックスを削除および/または作成するロジックを含めることができます。 |
• | マルチ テーブル オプションを使用するフル リフレッシュ キャッシュの場合、リフレッシュのたびにキャッシュされたデータに自動的にインデックスを付けるように TDV を構成できます。この選択では、キャッシュしているテーブルまたはビューの [インデックス] タブでインデキシング定義を指定する必要があります。 |
• | プル・ベースのインクリメンタル キャッシュの場合、インクリメンタル キャッシュ スクリプトにロジックを追加して、追加のインデキシング動作を定義できます。 |
• | インデキシングを直接サポートしていない TDV キャッシュ オプションの場合、特定のキャッシュ ターゲットで使用可能なデータベース ツールを使用して、キャッシュされたデータに直接インデックスを作成できます。このソリューションでは、キャッシュの更新が発生した後もインデックスが引き続き有効であることを確認するために必要なプロセスを検討する必要がある場合もあります。 |
キャッシュされたビューの結果セット内の特定のカラムに対してインデキシングを実行すると、パフォーマンスが向上します。TDV には、キャッシュされたデータの開始または更新、およびインデキシングに使用できるスクリプトまたはプロシージャを定義する機能もあります。
キャッシュ テーブルに移動するデータは、cachekey カラムを使用してフィルタリングできます。cachekey カラムは特定のキャッシュ スナップショットに対して一意の値であるため、キャッシュ データにインデックスを作成するカスタム スクリプトを記述する場合は、cachekey をインデックスの最初の列にすることをお勧めします。これは、プロシージャのキャッシュ バリアントが多く、よく使用されるクエリが行の大きなサブセットを返さない場合に特に当てはまります。
フル リフレッシュ マルチ テーブル キャッシュが有効な場合にキャッシュにインデックスを付けるには
1. | 次の手順を参照してください。 |
— | データベース ターゲットでの複数テーブル キャッシュの作成 |
2. | [インデックス] タブに必要なインデックスが定義されていることを確認してください。 |
[インデックス] タブの使用方法については、「インデックス、マスター キー、フォーリン キーを使用したクエリ パフォーマンスの向上」を参照してください。
完全更新キャッシュにインデックスを作成するには
-
次のトピックの手順を参照してください。
— | フル リフレッシュ モード キャッシュの事前および事後アクションの定義 |
-
インデックスを管理および定義するロジックを追加します。
-
パフォーマンスをテストして、キャッシュ インデックスのパフォーマンス目標が達成されていることを確認します。
プル・ベースのインクリメンタル キャッシュにインデックスを作成するには
-
次のトピックの手順を参照してください。
— | プル・ベースのインクリメンタル キャッシュの設定 |
-
インデックスを管理および定義するロジックを追加します。
-
パフォーマンスをテストして、キャッシュ インデックスのパフォーマンス目標が達成されていることを確認します。
キャッシュ ターゲットで直接キャッシュ データにインデックスを作成するには
-
次のトピックの手順を参照してください。
— | キャッシュの設定 |
-
キャッシュ ターゲット データベース タイプで使用可能なデータベース ツールを使用して、インデックスを定義します。
-
キャッシュの更新後もインデックスが機能していることを確認するために、他のスクリプトまたはプロセスの変更が必要になる可能性があるかどうかを判断します。
-
パフォーマンスをテストして、キャッシュ インデックスのパフォーマンス目標が達成されていることを確認します。