検索時に使用するインデクスを変更することで,性能を向上できることがあります。
ここでは,インデクスの定義を変更しないで,検索時に使用するインデクスを変更する方法について説明します。
WHERE句の述語の指定順序を変更すると,検索時に使用するインデクスを変更できます。
例えば,列C1と列C2に,それぞれインデクスT1IX1とインデクスT1IX2が定義されている場合,次のSQLではインデクスT1IX1を使用します。
SELECT * FROM "T1" WHERE "C1">1 AND "C2">'B'
インデクスT1IX2を使用するには,SQLを次のように書き換えます。
SELECT * FROM "T1" WHERE "C2">'B' AND "C1">1
WHERE句に指定する述語の種類を変更すると,検索時に使用するインデクスを変更できます。
例えば,列C1と列C2に,それぞれインデクスT1IX1とインデクスT1IX2が定義されている場合,次のSQLではインデクスT1IX1を使用します。
SELECT * FROM "T1" WHERE "C1"=1 AND "C2"='B'
インデクスT1IX2を使用するには,SQLを次のように書き換えます。
SELECT * FROM "T1" WHERE "C1" BETWEEN 1 AND 1 AND "C2"='B'