以下に格納構造の設計例を示します。
図2.9 格納構造の設計例
表の「伝票番号」列にインデックスを付加します。
表の「伝票」列にXMLデータのインデックスを付加します。
表のDSO名は、「伝票表DSO」、インデックスのDSO名は「伝票番号IXDSO」、XMLデータのインデックスのDSO名は「伝票IXDSO」としています。
XMLデータのインデックスのデータ部のページ長、インデックス部のページ長は、格納するXMLデータが以下のようなデータであることを想定し、それぞれ16Kバイト、1Kバイトとします。
表、インデックス、XMLデータのインデックスのDSIは、データベースのDBSP_3、DBSP_2、DBSP_1にそれぞれ割り当てます。
表、インデックス、XMLデータのインデックスのDSI名は、それぞれ「伝票表DSI1」、「伝票番号IXDSI1」、「伝票IXDSI1」としています。
XMLデータのインデックスのスペース割付け量は、格納するXMLデータが見積りの結果、データ部を200Kバイト、インデックス部を40Kバイトデータであることを想定し、見積り式により算出します。スペース割付け量の詳細は、“付録C 見積り式”を参照してください。
以上の条件で、DSO定義、DSI定義を行う場合、次のようになります。
CREATE DSO 伝票表DSO FROM 伝票スキーマ.伝票表 TYPE SEQUENTIAL(PAGESIZE(4), ORDER(0)) ; CREATE DSO 伝票番号IXDSO INDEX ON 伝票スキーマ.伝票表 (伝票番号) TYPE BTREE(PAGESIZE1(16), PAGESIZE2(1)) BY ADDRESS ; CREATE DSO 伝票IXDSO INDEX ON 伝票スキーマ.伝票表 (伝票)
TYPE XML(PAGESIZE1(16), PAGESIZE2(1))
BY ADDRESS ;
CREATE DSI 伝票表DSI1 DSO 伝票表DSO ALLOCATE DATA ON DBSP_3 SIZE 280K ; CREATE DSI 伝票番号IXDSI1 INDEX DSO 伝票番号IXDSO ALLOCATE BASE ON DBSP_2 SIZE 200K, INDEX ON DBSP_2 SIZE 40K ; CREATE DSI 伝票IXDSI1 INDEX DSO 伝票IXDSO
ALLOCATE BASE ON DBSP_1 SIZE 200K,
INDEX ON DBSP_1 SIZE 40K;