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' );