データ管理 > SQLに関する考慮事項 > 構成とパフォーマンス
ネットワークトラフィックの軽減は、パフォーマンスを向上させるための最善の方法です。ネットワークトラフィックを軽減するには、以下のガイドラインに従います。
実際に必要なフィールドのみをレコードから選択します。選択したフィールドのみがデータベースから取得されます。
タスクの範囲ではなく、データベースに送信できる範囲を使用します。
[照会リンク]コマンドではなく、[結合/外部リンク]コマンドを使用します。
可能な場合、リンクではなくRDBMSが提供するビューの機能を使用します。
テーブルを結合する場合、単純なテーブルの代わりにRDBMSビューを使用すると、パフォーマンスが向上します。Magicの[リンク]コマンドは、リンクテーブルごとに異なるSELECT文をデータベースに発行することで実行されます。バッチタスクをより効果的に実行するには、メインソースとリンクテーブルを結合するビューを使用するか、または[照会リンク]コマンドの代わりに[結合/外部リンク]コマンドを使用します。これにより、データベースによって結合が実行されます。
MagicとRDBMSでは、ビューという用語の意味が異なります。
Magicでは、ビューとは、メインソースから選択された項目とリンクテーブルから選択された項目、およびこれらの実項目の計算用に使用する変数項目を意味します。
SQLデータベースでは、ビューとは、内部のデータディクショナリに保存され、テーブルとして使用されるために事前に定義されたSELECT文を指します。ビュー定義では、複数のテーブルの結合、グループ関数の使用、およびテーブル内のレコードの一部を選択するためのWHERE句の使用などが可能です。
例:
10,000のレコードがあるメインソースと3つのリンクテーブルを使用するタスクがあるとします。通常の方法([照会リンク]コマンド)で処理すると、タスクで開いたSELECTカーソル数は次のようになります。
1 + 3* 10,000 = 30,001 |
[結合/外部結合リンク]コマンドを[照会リンク]コマンドの代わりに使用する場合、そのタスクで実行するSELECT文の数は1になります。
データベースでDBビューを定義した場合は、タスクによって実行されるSELECT文の数は1になります。
ビューの更新は、データベースの制限によって実行できないこともあります。