これは InterSystems FAQ サイトの記事です。
SQLのINSERT/UPDATE/DELETE文で大量のデータを更新する際に、高速化する方法をご紹介します。
以下の2つの手順を実行することで、更新処理のパフォーマンスを向上させることが可能です。
1.INSERT/UPDATE/DELETE時にインデックスを作成せず、あとでまとめて作成する
2.INSERT/UPDATE/DELETE時にジャーナルをOFFにする
1は、%NOINDEX キーワードを指定してインデックスの生成を後でまとめて行うことで、インデックスの構築を抑制しパフォーマンスを向上させる方法です。
クエリ実行例は、以下のようになります。
例:
UPDATE %NOINDEX tablename …
INSERT %NOINDEX INTO tablename …
DELETE %NOINDEX FROM tablename ...
更新後、あとでまとめてインデックスを再構築する場合は管理ポータルで行う方法と、コマンドで行う方法の2種類があります。
◆ 管理ポータルの場合...
[システムエクスプローラ] > [SQL]
(ネームスペース指定&テーブルを選択して) アクション - テーブルのインデックスを再構築...
◆ コマンドの場合...
ObjectScriptエクステンションマークをクリックし、対象のコードを選択→エクスポート の手順でローカルにエクスポートする必要があります。

.png)
.png)

