TDVにおいて、データソース内のテーブルやビューに対してキャッシュ設定を有効化すると、キャッシュタブ上にキャッシュデータのサイズが表示されます。(下図の赤枠部分)
本記事では、このキャッシュのサイズについて説明します。
キャッシュのサイズは何を意味するか?
TDV Studio上で確認できるキャッシュのサイズは、キャッシュ更新時にTDV Server内部で計算された結果求められる値であり、キャッシュターゲット内のテーブルに保存されるデータの実際の容量を示しているわけではありません。
後述しますが、キャッシュターゲットへのロード方式によっては、実際にキャッシュターゲットにデータがロードされているにも関わらずサイズが 0 Kb と表示されるケースもあるため、このStudio上で確認できるキャッシュのサイズは参考情報としてご利用頂くことを推奨します。
キャッシュのサイズが計算されないケース
INSERT/SELECT文やバルクローディングによってキャッシュターゲットにデータがロードされた場合、TDVにおけるキャッシュサイズの表示は 0Kbとなります。
キャッシュターゲットへのデータロードにおいて、以下のように INSERT/SELECT文が実行される場合は、キャッシュのサイズが0Kbと表示されます。
このような結果となるのは、INSERT/SELECT文を使用してキャッシュをロードした場合、TDV Serverはどれだけのデータが通過してキャッシュされたかを把握(または推定)できないためです。
INSERT/SELECT文は、あるテーブルから別のテーブルへのネイティブ・ロードを使用できる場合に実行されます。
例えば、以下の図のようなキャッシュ設定を行った場合、Oracleのキャッシュテーブル2
にロードされるビュー
のキャッシュサイズはStudio上では0Kbと表示されます。
TDVは、ソース(キャッシュ元)とキャッシュターゲットが同じTDVデータソースリソース上にあることを検出すると、直接のSELECTおよびINSERTがデータを移動する最良の方法であるか、それとも構成可能なネイティブロードオプションのいずれかがより高速に機能するかを判断します。
上記のケースでは、キャッシュ対象のビュー
はキャッシュテーブル1
にすでにキャッシュされており、ソース(キャッシュテーブル1
)とキャッシュターゲット(キャッシュテーブル2
)が同じTDVデータソースリソース(Oracle)上にあることが検出され、ネイティブロードオプションの利用が選択されます。
キャッシュのサイズが計算されるケース
キャッシュターゲットへのデータロードにINSERT/SELECT文が実行されない場合は、TDV Server内部でキャッシュデータのサイズが計算されるため、以下のように推定サイズが表示されます。