ODBCプロシージャを使用したキャッシュのパージと保守
Oracle BIサーバーには、キャッシュ・エントリをパージするためのODBC拡張関数があります。
これらの関数の中には、抽出、変換およびロード(ETL)タスクに埋め込むのに特に役立つものがあります。たとえば、毎晩のETLの実行後に、すべてのOracle BIサーバー・キャッシュ・エントリをパージできます。ファクト表だけが変更された場合は、その表に関連するキャッシュのみをパージできます。場合によっては、特定のデータベースに関連するキャッシュ・エントリをパージする必要があります。
キャッシュをパージする権限を持つのは管理者だけです。したがって、このようなODBC拡張関数をコールするスクリプトは、管理者権限の資格証明の下で実行する必要があります。
次のODBC関数は、ODBC接続で指定されるリポジトリに関連するキャッシュ・エントリに影響します。
-
SAPurgeCacheByQuery。指定された問合せに完全に一致するキャッシュ・エントリをパージします。たとえば、次の問合せを使用すると、給与が$100,000を超えるすべての従業員の名前を取得する、1つ以上の問合せキャッシュ・エントリが得られます。
SELECT lastname, firstname FROM employee WHERE salary > 100000;
次のコールによって、この問合せに関連するキャッシュ・エントリがパージされます。
Call SAPurgeCacheByQuery('SELECT lastname, firstname FROM employee WHERE salary > 100000' );
-
SAPurgeCacheByTable。クライアントが接続されているリポジトリの、指定された物理表名(完全修飾)に関連するすべてのキャッシュ・エントリをパージします。
この関数は、完全修飾された物理表名の4つのコンポーネント(データベース、カタログ、スキーマおよび表名に固有)を表す、最大で4つのパラメータを使用します。たとえば、完全修飾名が
DBName.CatName.SchName.TabName
という表があるものとします。メタデータ・リポジトリの物理レイヤーにあるこの表に関連するキャッシュ・エントリをパージするには、スクリプト内で次のコールを実行します。Call SAPurgeCacheByTable( 'DBName', 'CatName', 'SchName', 'TabName' );
ノート:
Oracle BIサーバーでは、この関数でのワイルドカードがサポートされていません。また、DBNameとTabNameはnullにできません。どちらかがnullの場合は、エラー・メッセージが表示されます。
-
SAPurgeAllCache。すべてのキャッシュ・エントリをパージします。この関数では、ノードの名前のカンマ区切りリストであるパラメータを取ります。次に、obis1およびobis2ノードのキャッシュ・エントリをパージするこのコールの例を示します。
Call SAPurgeAllCache('obis1,obis2');
-
SAPurgeCacheByDatabase。特定の物理データベース名に関連するすべてのキャッシュ・エントリをパージします。キャッシュをパージするODBCプロシージャがコールされると、レコードが返されます。この関数では、物理データベース名を表すパラメータを1つ使用し、そのパラメータはnullにできません。このコールの構文を次に示します。
Call SAPurgeCacheByDatabase( 'DBName' );