Naeel Maqsudov » 29 дек 2004, 02:26
В Oracle начиная с 8i есть два вида индексов. Обычный (древовидный) и битовый (bitmap index)
Первый хорош для данных с небольшим числом повторений (например для pk идеально) а второй для значений, которые часто повторяются.
Исполльзовать индекс или нет Oracle часто решает сам, например, для небольших таблиц часто он кладет на индексы, если они помещаются в кеше. Тут только план запроса надо смотреть и ковыряться что и как отработало, а в случае если Oracle не прав - вписать в предложение select так называемые хинты, которые скажут ему, какие индексы тут надо поюзать.
Кроме того есть в sp-файле параметры, изменяющие внутренние алгоритмы, связанные с оптимизацией запросов (по разному (из разных критериев) может вычисляться стоимость запроса). На вскидку не помню, могу посмотреть, если надо.
В Oracle начиная с 8i есть два вида индексов. Обычный (древовидный) и битовый (bitmap index)
Первый хорош для данных с небольшим числом повторений (например для pk идеально) а второй для значений, которые часто повторяются.
Исполльзовать индекс или нет Oracle часто решает сам, например, для небольших таблиц часто он кладет на индексы, если они помещаются в кеше. Тут только план запроса надо смотреть и ковыряться что и как отработало, а в случае если Oracle не прав - вписать в предложение select так называемые хинты, которые скажут ему, какие индексы тут надо поюзать.
Кроме того есть в sp-файле параметры, изменяющие внутренние алгоритмы, связанные с оптимизацией запросов (по разному (из разных критериев) может вычисляться стоимость запроса). На вскидку не помню, могу посмотреть, если надо.