Hitachi

ノンストップデータベース HiRDB Version 9 システム運用ガイド(UNIX(R)用)


14.2.2 インデクスの作成時間を短縮する方法(EMPTYオプション)

データが大量にある表に対してインデクスを定義する場合,インデクスの実体の作成(CREATE INDEXの実行)に時間が掛かります。その間,ほかの定義系SQLは実行できません。

CREATE INDEXにEMPTYオプションを指定すると,インデクスの実体を作成しないで,定義上のインデクスを作成します。これを未完状態のインデクスと呼びます。インデクスの実体を作成しないため,CREATE INDEXの実行は即時終了し,ほかの定義系SQLを実行できるようになります。

なお,プラグインインデクスに対してもEMPTYオプションを指定できます。

参考
  1. インデクスの実体が未作成であるため,未完状態のインデクスを使った検索や,未完状態のインデクスを定義している表の列の更新はできません(SQLエラーとなります)。

  2. インデクスが未完状態であるかどうかは,データベース状態解析ユティリティ(pddbstコマンド)で確認できます。インデクス単位の状態解析,又はRDエリア単位の状態解析(論理的解析)では,statusに状態を表示し,クラスタキー及びクラスタリングデータページの格納状態解析では,警告メッセージで未完状態であることを通知します。

  3. インデクスの実体は,データベース再編成ユティリティ(pdrorgコマンド)のインデクス再作成機能(-k ixrc)を使用して作成します。インデクスの実体を作成すると,実体を作成したインデクスの未完状態は解除されます。また,PURGE TABLE文で表を全件削除した場合,その表のすベてのインデクスの未完状態が解除されます。

  4. 分割表の場合は,インデクスも複数のRDエリアに分割格納しますが,未完状態は,個々の分割格納されたインデクスごとに管理します。データベース再編成ユティリティ(pdrorgコマンド)では,このインデクスを格納するRDエリア単位にインデクスの実体を作成できます。このため,分割格納したインデクスの一部を作成した時点では,インデクスの一部は作成済みで一部は未完状態となるため,SQLに指定した条件などによって,実行できたりエラーになったりする場合があります。