Version 2013.1.x ~
  アプリケーション使用中にインデックス再構築を複数プロセスで実行できますか?

はい、できます。
%IndexBuilder クラスを使用して、複数プロセスを利用してインデックス再構築を行うことができます。

Sample.Person の Home_State(連絡先住所の州情報)カラムに対して標準インデックス HomeStateIdx を定義する目的での例で記載します。
手順は以下の通りです。

1、追加/再構築予定のインデックス名をクエリオプティマイザから隠します。

>write $system.SQL.SetMapSelectability("Sample.Person","HomeStateIdx",0)
1


2、新インデックスを定義するクラス定義のスーパークラスに %IndexBuilder を一番右端に追加します。

///クラス定義文は以下の通りです(一番右端に追加します)
Class Sample.Person Extends (%Persistent, %Populate, %XML.Adaptor, %Library.IndexBuilder)


3、クラス定義の INDEXBUILDERFILTER パラメータに再構築予定のインデックス名を登録します。

Index HomeStateIdx On Home.State;
Parameter INDEXBUILDERFILTER = "HomeStateIdx";


4、クラスをコンパイルします。
5、%ConstructIndicesParallel() メソッドを使用して、並列処理でインデックスの再構築を行います。

set st=##class(Sample.Person).%ConstructIndicesParallel()


6、インデックス再構築が終わったら、追加したインデックスをオプティマイザに公開します。

>write $system.SQL.SetMapSelectability("Sample.Person","HomeStateIdx",1)
1


詳細は以下ドキュメントをご参照ください。
インデックス再構築をアプリケーション実行中に行う方法について【IRIS】

インデックス再構築をアプリケーション実行中に行う方法について


該当する製品: Caché, Ensemble, HealthShare/Caché Based, IRIS Data Platform, HealthShare/IRIS Based, IRIS for Health
関連トピック: データの登録/削除が行われている間でも、インデックスの再構築はできますか?
添付ファイル:

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る