Hitachi

Hitachi Advanced Data Binder AP開発ガイド


5.12.4 アーカイブマルチチャンク表を検索するSQL文の等価変換

次に示す条件をすべて満たす場合,アーカイブマルチチャンク表を検索するSQL文はHADBサーバによって自動的に変換(等価変換)されます。

メモ
  • 等価変換後のSQL文が,アクセスパスの情報に出力されます。

  • 等価変換後のSQL文に対してSQL文の規則が適用されます。

等価変換の例を次に示します。

指定したSELECT文の例
SELECT * FROM "ARCHIVE-T1"
    WHERE "RECORD-DAY" BETWEEN DATE'2015/11/01' AND DATE'2016/01/31'
    AND "C1"='P001'
SELECT文による検索範囲

[図データ]

等価変換されたSELECT文の例
SELECT * FROM 
  (SELECT * FROM "ARCHIVE-T1"                             ...1
   UNION ALL                                              ...2
   SELECT * FROM                                          ...3
     TABLE (ADB_CSVREAD(MULTISET(                         ...4
       SELECT "ARCHIVE_FILE_NAME" FROM
                  "HADB"."LOCATION_TABLE_00020191" AS "LOC"
                 ,"HADB"."STATUS_CHUNKS" AS "SCK"
         WHERE "RANGE_MAX" >= DATE'2015/11/01'            ...5
           AND "RANGE_MIN" <= DATE'2016/01/31'            ...5
           AND "SCK"."TABLE_SCHEMA" = 'ADBUSER01'
           AND "SCK"."TABLE_NAME" = 'ARCHIVE-T1'
           AND "SCK"."CHUNK_ID" = "LOC"."CHUNK_ID"
           AND "SCK"."CHUNK_STATUS" IS NULL
       )
       ,'中略')
     ) AS "TBLFUNC_00020191" ("C1" VARCHAR(10), "C2" INT, "RECORD_DAY" DATE)   ...6
  )
    WHERE "RECORD_DAY" BETWEEN DATE'2015/11/01' AND DATE'2016/01/31'
    AND "C1"='P001'
[説明]

この例では,アーカイブされているデータと,アーカイブされていないデータを検索しています。この例では,アーカイブされているデータを検索する問合せと,アーカイブされていないデータを検索する問合せに書き換えられ,この2つの問合せの和集合(UNION ALL)を求めています。

  1. アーカイブされていないデータを検索する問合せです。

  2. 1.と3.の問合せの和集合(UNION ALL)を求めています。

  3. アーカイブされているデータを検索する問合せです。

  4. ADB_CSVREAD関数に変換されて,アーカイブされているデータが格納されているアーカイブファイルを読み込んでいます。

  5. WHERE句に指定した探索条件を基に,ロケーション表を検索する探索条件に書き換えています。

  6. TBLFUNC_00020191は,表関数導出表の相関名です。相関名は次の規則に従って決定されます。

    TBLFUNC_nnnnnnnn

    nnnnnnnn:アーカイブマルチチャンク表の表IDを16進数に変換した8桁の文字列(0〜9,A〜F)

注※

ロケーション表を検索する探索条件に書き換える例を次に示します。

(例1)

[図データ]

(例2)

[図データ]

  • RANGE_MAX

    ロケーション表の列です。アーカイブファイルごとのアーカイブレンジ列の値の最大値が格納されています。

  • RANGE_MIN

    ロケーション表の列です。アーカイブファイルごとのアーカイブレンジ列の値の最小値が格納されています。

メモ

アーカイブマルチチャンク表を検索するSQL文の等価変換によって生成された内部導出表は,展開の対象になりません。内部導出表の展開については,マニュアルHADB SQLリファレンス内部導出表を参照してください。