Какие индексы вообще строить???
Добавлено: 22 сен 2005, 02:40
Люди, помогите сумбур в голове побороть, плиииз!
Есть полумиллионная таблица в FBE 1.5.2 и примитивные запросы типа:
SELECT CNT FROM IBTable WHERE (ID = :pID) AND (SUBID = :pSUBID) AND (STR = :pSTR)
и
UPDATE IBTable SET CNT = :pNewCNT WHERE (ID = :pID) AND (SUBID = :pSUBID) AND (STR = :pSTR)
Так вот, самую высокую скорость я наблюдаю когда таблица имеет один единственный (он же первичный ключ) индекс по полю ID. Если добавить по индексу еще и для SUBID и STR, то скорость падает почти вдвое! Если создать составной индекс по полям ID;SUBID;STR, скорость падает не так значительно, но все равно падает.
Что это значит и какие индексы вообще нужны для ускорения вышеприведенных запросов?
Есть полумиллионная таблица в FBE 1.5.2 и примитивные запросы типа:
SELECT CNT FROM IBTable WHERE (ID = :pID) AND (SUBID = :pSUBID) AND (STR = :pSTR)
и
UPDATE IBTable SET CNT = :pNewCNT WHERE (ID = :pID) AND (SUBID = :pSUBID) AND (STR = :pSTR)
Так вот, самую высокую скорость я наблюдаю когда таблица имеет один единственный (он же первичный ключ) индекс по полю ID. Если добавить по индексу еще и для SUBID и STR, то скорость падает почти вдвое! Если создать составной индекс по полям ID;SUBID;STR, скорость падает не так значительно, но все равно падает.
Что это значит и какие индексы вообще нужны для ускорения вышеприведенных запросов?