Я думаю, что двух дополнительных индексов будет достаточно:
CREATE INDEX IDX_YourTable_AB ON YourTable(A,B) -- the first column here which has more different values
CREATE INDEX IDX_YourTable_B ON YourTable(B)INCLUDE(A)
Если у вас есть другие столбцы в этой таблице, вы можете создать включенные индексы:
CREATE INDEX IDX_YourTable_AB ON YourTable(A,B) INCLUDE(C,D,E,...)
CREATE INDEX IDX_YourTable_B ON YourTable(B) INCLUDE(A,C,D,E,...)
Индекс IDX_YourTable_AB
может использоваться для условий WHERE A='...'
или WHERE A='...' AND B='...'
или WHERE A LIKE '...%' AND B='...'
- используется только столбец A
или A
& B
столбцы.
Индекс IDX_YourTable_B
может использоваться для условий только с столбцом B
(WHERE B='...'
или WHERE B LIKE '...%'
).
Также попробуйте проверить CREATE INDEX IDX_YourTable_BA ON YourTable(B,A)
вместо CREATE INDEX IDX_YourTable_B ON YourTable(B)INCLUDE(A)
. Может быть, так будет лучше.