
索引を使用すると、特定の検索条件を満たすデータレコードをテーブルから検索することができます。
索引は、いくつかの項目に縮小されたデータベーステーブルのコピーということができます。このコピーは必ずソート形式で存在します。ソートにより、たとえばバイナリ検索を使ってテーブルのデータレコードへの高速アクセスが可能になります。索引には、実際のテーブルの該当レコードを指すポインタも含まれているので、索引に含まれていない項目も読み込むことができます。
テーブルには一次索引と二次索引とがあります。一次索引には、テーブルのキー項目とテーブルの非キー項目へのポインタが入ります。一次索引は、データベースへのテーブルの登録時に自動的に登録されます。

フライトモデルのテーブル
SCOUNTER
には、航空会社の空港への割当が含まれます。したがって、このテーブルの一次索引はテーブルのキー項目と元のデータレコードへのポインタから構成されます。
またテーブル上の追加の索引を
ABAP ディクショナリに登録することもできます。これらの索引のことを 二次索引といいます。アクセスを行うのに一次索引のソートを利用しない方法で、テーブルが頻繁にアクセスされる場合は、この二次索引が必要となります。同じテーブルの異なる索引は、 3 桁の 索引識別子によって区別されます。
ある空港の航空会社のすべてのカウンタは、フライト予約を確認するためによく検索されます。空港
ID を使用して、このようなアクセスに対するカウンタを検索します。一次索引をソートしても、このアクセス速度は早くなりません。テーブル SCOUNTER のエントリはたくさんあるので、項目 AIRPORT ( 空港 ID) の二次索引を登録し、空港 ID を使用してアクセスをサポートする必要があります。
データベースシステムのオプティマイザによって、索引を実際のテーブルアクセスに使用すべきかどうかを指定します
( 索引の使用チェック方法を参照 ) 。つまり、索引を使用してもあるデータベースシステムでしかパフォーマンスが向上しない場合があります。したがって、 ABAP ディクショナリでの索引の定義時に索引を登録するデータベースシステムを定義することができます ( 二次索引の登録を参照 ) 。ABAP
ディクショナリ内のテーブルのすべての索引は、通常ではテーブルが登録されているデータベース上に登録されます ( データベースシステムの索引定義の中で索引の自動登録について除外されていないとき)。索引項目がキーとして設定されている場合、すなわち索引項目によりテーブルの各レコードがすでに一意に識別される場合、索引は
一意索引として定義することができます。以下も参照してください。
二次索引の登録時の注意事項を参照してください。