表を横分割した場合,横分割した表に対応させて,インデクスも複数のユーザ用RDエリアにわたって横分割できます。
横分割インデクスを設計する前に,分割キーインデクスと非分割キーインデクスについて理解する必要があります。
インデクスがある一定の条件を満たすと,そのインデクスは分割キーインデクスになり,条件を満たさないインデクスは非分割キーインデクスになります。この条件は,表が単一列分割か複数列分割かによって異なります。
次に示すどちらかの条件を満たす場合,そのインデクスは分割キーインデクスになります。
次に示すZAIKO表を例にして,インデクスが分割キーインデクスになる場合を次の図に示します。
図14-1 分割キーインデクスになる場合(単一列分割の場合)
CREATE INDEX A12 ON ZAIKO (SCODE ASC) 1
CREATE INDEX A12 ON ZAIKO (SCODE ASC,TANKA DESC) 2
CREATE INDEX A12 ON ZAIKO (TANKA DESC,SCODE ASC) 3
次に示す条件を満たす場合,そのインデクスは分割キーインデクスになります。
次に示すZAIKO表を例にして,インデクスが分割キーインデクスになる場合を次の図に示します。
図14-2 分割キーインデクスになる場合(複数列分割の場合)
CREATE INDEX A12 ON ZAIKO (SCODE ASC,TANKA DESC) 1
CREATE INDEX A12 ON ZAIKO (SCODE ASC,TANKA DESC,ZSURYO ASC) 2
CREATE INDEX A12 ON ZAIKO (TANKA DESC,SCODE ASC) 3
CREATE INDEX A12 ON ZAIKO (SCODE ASC,ZSURYO DESC,TANKA ASC) 4
インデクスが分割キーインデクスか非分割キーインデクスかによって,次の表に示すとおりインデクスの分割指針が異なります。
表14-5 インデクスの分割指針
インデクス の種類 | HiRDB/シングル サーバの場合 | HiRDB/パラレルサーバの場合 | |
---|---|---|---|
表をサーバ内 横分割する場合 | 表をサーバ間 横分割する場合 | ||
インデクスが分割キーインデクスの場合 | 横分割表に対応させてインデクスも横分割します。 | 横分割表に対応させてインデクスも横分割します。 | 横分割表に対応させてインデクスも横分割します。 |
インデクスが非分割キーインデクスの場合 | インデクスを横分割しないことをお勧めします。インデクスを横分割すると,インデクスを使用した検索性能が悪くなることがあります※。 | インデクスを横分割しないことをお勧めします。インデクスを横分割すると,インデクスを使用した検索性能が悪くなることがあります※。 |
インデクスの横分割の例(HiRDB/シングルサーバの場合)を次の図に示します。
図14-3 インデクスの横分割の例(HiRDB/シングルサーバの場合)
インデクスの横分割の例(サーバ内横分割の場合)を次の図に示します。
図14-4 インデクスの横分割の例(サーバ内横分割の場合)
インデクスの横分割の例(サーバ間横分割の場合)を次の図に示します。
図14-5 インデクスの横分割の例(サーバ間横分割の場合)