!--a11y-->

データベースシステムとアプリケーションサーバ間でのデータ転送は、ブロック単位で行われます。各ブロックのサイズは、32 KB までです (厳密なサイズは、ネットワーク通信用ハードウェアによって異なります)。管理情報も、データと同様にブロック単位で移送されます。
ネットワークに極力負荷をかけないようにするには、転送するブロックをできるだけ少なくしてください。オープン SQL では、以下の手順で行うことができます。
SELECT 命令で一定の行数だけを読み込む場合は、FROM 句の UP TO <n> ROWS 追加を使用します。これによってデータベースシステムに対して、<n> 行だけアプリケーションサーバに逆転送するよう指示が行われます。必要以上の行をアプリケーションサーバに逆転送してから ABAP プログラム内で削除するよりも、この方が効率的です。
WHERE 句によって重複した入力が多数返されることが予想される場合は、SELECT 句のDISTINCT 追加を使用することができます。
データベーステーブルから読み込む列は、プログラムで実際に必要とするものだけにしてください。必要とする行だけを読み込むには、SELECT 句に列の一覧を入れます。ここで INTO 句の INTO CORRESPONDING FIELDS 追加は、データボリュームが大きい場合にのみ効率的であることに注意してください。データボリュームが小さいと、名称比較に要する実行時間が必要以上に長くなりすぎます。データが少量の場合は、INTO 句に変数の一覧を使用してください。
実際に必要な場合以外は、* を使用してすべての列を選択しないでください。ただし、個々の列をリストアップする場合、ABAP ディクショナリ内のデータベーステーブル構造が変更されていると、プログラムを調整する必要がある可能性があります。データベーステーブルを動的に指定する場合は、常にすべての列を読み込むようにしてください。
データを計算のためだけに使用する場合、データベースから個々の項目を読み込んで ABAP プログラムで計算を行うより、SELECT 句の集計機能を使う方がたいていは効率的です。
集計機能を使うと値の数を調べたり、合計額、平均値、最小値および最大値を見たりすることができます。集合式に続いて、その結果だけがデータベースから転送されます。
UPDATE 命令を使用してテーブル内の行を変更する際は、WHERE 句を使って該当の行を指定してから、SET 命令で必要な列だけを変更してください。
作業領域を使ってテーブル行を上書きする場合、データが過剰に転送されることがよくあります。さらにこの方法では、作業領域を埋めるために余分な SELECT 命令を必要とします。