スパース キー

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

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

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

スパース キーを有効化するには、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 であるレコードについては、実際のキーの値は索引に格納されません。