スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)
データを格納している表にインデクスを定義する手順を次に示します。
- 〈手順〉
- CREATE INDEXでインデクスを定義します。インデクスを定義するとき,インデクスを定義する表をアクセスするUAPは排他待ちの状態になります。
- インデクスを定義した後に,必要があれば最適化情報収集ユティリティ(pdgetcstコマンド)を実行してください。ただし,プラグインインデクスは,最適化情報収集ユティリティの対象外となります。最適化情報収集ユティリティの実行要否については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。
- インデクスを定義すると,インデクスを定義した表を使用しているストアドルーチンのインデクス情報が無効になります。この場合,ALTER PROCEDURE又はALTER ROUTINEでストアドルーチンを再作成してください。
また,トリガSQL文中に指定している表にインデクスを定義すると,トリガのインデクス情報が無効になります。この場合,ALTER TRIGGER又はALTER ROUTINEでトリガを再作成してください。
データが大量にある表に対してインデクスを定義する場合,インデクスの実体の作成(CREATE INDEXの実行)に時間が掛かります。その間,ほかの定義系SQLは実行できません。
CREATE INDEXにEMPTYオプションを指定すると,インデクスの実体を作成しないで,定義上のインデクスを作成します。これを未完状態のインデクスと呼びます。インデクスの実体を作成しないため,CREATE INDEXの実行は即時終了し,ほかの定義系SQLを実行できるようになります。
なお,プラグインインデクスに対してもEMPTYオプションを指定できます。
- 参考
- インデクスの実体が未作成であるため,未完状態のインデクスを使った検索や,未完状態のインデクスを定義している表の列の更新はできません(SQLエラーとなります)。
- インデクスが未完状態であるかどうかは,データベース状態解析ユティリティ(pddbstコマンド)で確認できます。インデクス単位の状態解析,又はRDエリア単位の状態解析(論理的解析)では,statusに状態を表示し,クラスタキー及びクラスタリングデータページの格納状態解析では,警告メッセージで未完状態であることを通知します。
- インデクスの実体は,データベース再編成ユティリティ(pdrorgコマンド)のインデクス再作成機能(-k ixrc)を使用して作成します。インデクスの実体を作成すると,実体を作成したインデクスの未完状態は解除されます。また,PURGE TABLE文で表を全件削除した場合,その表のすベてのインデクスの未完状態が解除されます。
- 分割表の場合は,インデクスも複数のRDエリアに分割格納しますが,未完状態は,個々の分割格納されたインデクスごとに管理します。データベース再編成ユティリティ(pdrorgコマンド)では,このインデクスを格納するRDエリア単位にインデクスの実体を作成できます。このため,分割格納したインデクスの一部を作成した時点では,インデクスの一部は作成済みで一部は未完状態となるため,SQLに指定した条件などによって,実行できたりエラーになったりする場合があります。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.