負荷集中箇所を削減するためのランダム・キー列を持つ索引

データベース表の INSERT、DELETE、あるいは UPDATE 処理中に索引内に負荷集中箇所がある場合、CREATE INDEX ステートメントに新しい RANDOM オプションを使用することで、索引キー列をランダム化することができます。

索引の変更時に、このオプションを使用してランダム化したキー列を追加できます。 索引はランダムな並びに保管されても、従来どおり索引のみにアクセスすることは可能です。 また、索引がランダムな並びになっている状態は、等価検索の場合にのみ使用可能です。

例: ユーザーが、次のように EMP 表の EMPNO 列に対して昇順に索引を定義するとします。
CREATE INDEX DSN8C10.XEMP3                 
                   ON DSN8C10.EMP          
                       (EMPNO    ASC);         
その後、そのユーザーが継続的に EMPNO 列に値 (000010、000020、000030、...) を昇順で挿入します。 これらの値は常に索引の最後に追加されて、その結果、索引の最後に負荷集中箇所ができます。 この場合の索引では、ユーザーは特定の社員をその EMPNO で検索したいだけです (すなわち、EMPNO 列に対しては等価述部しか使用されません)。 競合を削減するには、ユーザーは索引の定義を次のように変更します。
CREATE INDEX DSN8C10.XEMP3                  
                   ON DSN8C10.EMP          
                       (EMPNO    RANDOM);      
RANDOM を指定することで、EMPNO の値が索引全体にランダムに拡散されて、常に索引の終わりに値が挿入されることから生じる競合を回避することができます。 この索引の一般的な使用法が特定社員をその EMPNO で検索することであり、ユーザーは最後の負荷集中箇所を避けたいので、新しい RANDOM 順序付けオプションは、有効なソリューションになります。