結果データベース

データビューエディタ > 埋め込みSQL

結果データベースと入力データベースが同じ場合

このオプションを選択すると、結果データベースを入力データベースと同じにすることができます。ほとんどの場合、基礎となるRDBMSでは次の文が使用できます。

INSERT INTO table AS SELECT...

この文は1回のコマンドで全データをテーブルにコピーしています。この方法はカーソルをオープンするよりも高速です。レコードは全てクライアントから取得され、結果テーブルに挿入されます。

このような場合、SQLゲートウェイはデータベース内にテーブルを作成し、次の文を送信します。

INSERT INTO temp_table AS direct SELECT statement

その後、ユーザはこのテーブルをスクロールしてSELECT文の実行速度を向上させることができます。この方法では一時ファイルから個々のレコードを取り出したりそこへ挿入したりする処理がないため、結果セットが大きい場合には特に有効です。

結果データベースと入力データベースが異なる場合

結果データベースが入力データベースと異なる場合は、一時テーブルが作成され、SELECT文の結果のレコードが全てこの一時テーブルに格納されます。その後、タスクはこの一時テーブルをメインソースとしてスクロールできます。

推奨事項

結果が大量になる場合は、結果データベースを入力データベースと同じにするオプションを利用するのが最善です。

結果が比較的小さくなる場合は、結果データベースとして、クライアントに常駐するISAMデータベースを指定するのが最善です。そうすることで、結果を作成してそれをスクロールする時の作業がクライアント上だけで済むため、ネットワークトラフィックが減少します。

結果が比較的小さくなる場合は、メモリゲートウェイを使用することでパフォーマンスが向上します。