ユーザーガイド > TDVキャッシング > キャッシングの設定 > データベースキャッシング用のキャッシングオブジェクトの事前作成
 
データベースキャッシング用のキャッシングオブジェクトの事前作成
このトピックの手順はオプションであり、ユーザーが必要に応じてデータベースオブジェクトを作成できることを前提としています。また、サーバー、スキーマ、およびこれらのテーブルを作成するデータベースのデータベース命名規則についても十分に理解しておく必要があります。選択したデータベースのドキュメントを入手することをお勧めします。会社のポリシーと手順によっては、Studioを使用してキャッシングを設定する前に、データベースに直接キャッシングオブジェクトを作成しなければならない場合があります。
非ファイルキャッシングを使用する場合は、少なくとも3つのテーブルが必要です。キャッシュデータを保持するテーブル、キャッシュステータスを保持するテーブル、そしてキャッシュ追跡情報を保持するテーブルです。それらのテーブルを作成するデータベースの制約に従って、テーブルに有効な名前を付けることができます。他のユーザーにとってわかりやすい名前を使用することをお勧めします。
データベースにキャッシュオブジェクトを事前作成するには
1.キャッシュターゲットに最適なデータベースを決定します。
2.そのデータベースがまだ存在しない場合は、Studio内のデータソースとして追加します。
3.単一または複数のキャッシュテーブルが必要かどうかを判断します。
4.必要なキャッシュの数を決定するか、それらの要求のプロセスを定義します。
5.データベーステーブルの作成に使用するツールを見つけて開きます。
6.単一テーブルキャッシュの場合は、キャッシュを定義する一意のTDVリソースごとに、次のようなDDLステートメントを使用して次のテーブルを作成します。使用しているTDVのバージョン、テーブルを作成するデータベースタイプ、キャッシュするTDVリソース、およびデータにインデックスを作成するかどうかによって、DDLの変更が必要になる場合があります。次の表では、UIDはユーザーIDを表します。テーブルには任意の名前を付けることができます。<table_data>は、そのテーブルに作成する列の名前、データタイプ、およびその他のテーブル作成に必要なメタデータを指定する必要があることを示しています。
テーブル
DDLの例
<UID_cache>
DROP TABLE IF EXISTS `INV_cache_data`;
CREATE TABLE `INV_cache_data` (
`cachekey` integer NOT NULL,
<table data>
)
7.複数テーブルキャッシュの場合は、キャッシュを定義するTDVリソースごとに、次の構造を持つテーブルを作成します。使用しているTDVのバージョン、テーブルを作成するデータベースタイプ、キャッシュするTDVリソース、およびデータにインデックスを作成するかどうかによって、DDLの変更が必要になる場合があります。
テーブル
DDLの例
<UID_cache_status>
DROP TABLE "QAN"."mm_cache_status";
 
CREATE TABLE "QAN"."mm_cache_status" (
"clusterid" varchar(40),
"serverid" varchar(255) NOT NULL,
"resourceid" varchar(255) NOT NULL,
"parameters" varchar(255),
"status" char(1) NOT NULL,
"cachekey" number(10, 0) NOT NULL,
"starttime" timestamp(9) NOT NULL,
"finishtime" timestamp(9),
"cleartime" timestamp(9),
"bytes" number(19, 0),
"message" varchar(255),
"bucket" varchar(255),
"incrementalstatus" char(1),
"incrementalmaintenancelevel" varchar(255)
)
<UID_cache_tracking>
DROP TABLE "QAN"."mm_cache_tracking";
 
CREATE TABLE "QAN"."mm_cache_tracking" (
"clusterid" varchar(40),
"serverid" varchar(255) NOT NULL,
"resourceid" varchar(255) NOT NULL,
"catalog" varchar(255),
"schema" varchar(255),
"table" varchar(255) NOT NULL,
"createtime" timestamp(9)
)
<UID_cache_data>
DROP TABLE "QAN"."mm0";
CREATE TABLE "QAN"."mm0" (
<table_data>
);
CREATE UNIQUE INDEX "mm0_PRIMARY" ON "QAN"."mm0"("TransactionID" asc)
DROP TABLE "QAN"."mm1";
CREATE TABLE "QAN"."mm1" (
<table_data>);
CREATE UNIQUE INDEX "mm1_PRIMARY" ON "QAN"."mm1"("TransactionID" asc)
DROP TABLE "QAN"."mm2";
CREATE TABLE "QAN"."mm2" (
<table_data>);
CREATE UNIQUE INDEX "mm2_PRIMARY" ON "QAN"."mm2"("TransactionID" asc)
DROP TABLE "QAN"."mm3";
CREATE TABLE "QAN"."mm3" (
<table_data>
);
 
...
8.データソースを再イントロスペクトして、作成した追加のテーブルがTDVから利用できることを確認します。
9.キャッシュを設定し、これらのテーブルをステータステーブル、追跡テーブル、データテーブルとして選択します。