スパース キー

スパース キーを設定すると、指定した値に対する索引エントリがファイルに格納されません。「たとえば、空白文字しか含まれていない場合はスパース キーとして処理されるようにキーを定義すると、そのキーに対応するレコードの部分に空白文字しか含まれていない場合はそのキーの索引エントリがファイルに格納されなくなります。

スパース キーとして指定できるのは、副キーのみです。

この機能を使用すると、索引ファイルを小さくできます。キーが大きくなり、副キーに指定した値を持つレコードの数が増えた場合には、多くのディスク容量を節約できます。

スパース キーを有効化するには、SELECT 句 の ALTERNATE RECORD KEY 句で SUPPRESS WHEN ALL を使用します。

 file-control.
     select idxfile assign to "idx.dat"
         organization is indexed
         record key is idxfile-record-key
         alternate record key is idxfile-alt-key
                                 with duplicates 
                                 suppress when all "A".

この例では、副キーの値がすべて A であるレコードについては、実際のキーの値は索引ファイルに格納されません。