powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / contex индекс и оптимизатор
13 сообщений из 13, страница 1 из 1
contex индекс и оптимизатор
    #39586858
orcl_1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Есть такая проблема:

Имеется таблица TAB1 с парой десятков признаков. Поле A типа VARCHAR2 проиндексировано contex индексом, поле B тоже типа VARCHAR2 проиндексировано b-tree индексом. По таблице и индексам статистика собрана.

При выполнения запроса типа:

select A, B, C, D from TAB1 where contains(A, 'ЗНАЧЕНИЕ1') > 0 and B='ЗНАЧЕНИЕ2';

оптимизатор использует индекс по полю B, если сделать трейс, то в принципе выбор оптимизатора понятен, стоимость скана по индексу поля B в районе 17k, а по полю A в районе 117k.

Время выполнения запроса со сканированием индекса по полю В в районе минуты, но если с помощью хинта заставить использовать индекс по полю А, либо исключить из условия поле В, то время выполнения запроса около секунды.

Возникает вопрос: Как заставить оптимизатор использовать индекс по полю А без изменения запроса, т.к. запрос генерирует приложение, код которого изменить нельзя?
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39586965
Alexander_Ttl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orcl_1989,
насколько я понял, SQL-запрос формируется динамически и не имеет стабильного sql_id.
В такой ситуации в голову приходит только cursor_sharing + профиль
поможет или нет, не знаю, никогда так не делал.
А вообще, лучше, конечно, избавиться от литералов и перейти на бинд-переменные.
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39586989
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Завысить стоимость индекса по B через установку статистики
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587003
Alexander_Ttl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только нужно помнить, что в этом случае могут поплыть планы других запросов.
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587024
orcl_1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Вы имеете ввиду через dbms_stats.set_index_stats?

Была такая мысль, но поле с b-tree индексом часто используетсяя и в других запросах в разных комбинациях, соответственно поплывут планы много где.

В идеале было бы хорошо занизить стоимость в contex индексе. Вопрос как?
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587215
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант:

Код: plsql
1.
select A, B, C, D from TAB1 where contains(A, 'ЗНАЧЕНИЕ1') > 0 and B || NULL ='ЗНАЧЕНИЕ2';



SY.
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587220
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orcl_1989 запрос генерирует приложение, код которого изменить нельзя?
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587223
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но наверное можно поискать и найти как можно повысить привлекательность CONTEXT-индекса
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587237
orcl_1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Да код изменить нельзя.

Как привлекательность индекса увеличить пока найти не могу.
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587249
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Провокационный вброс: "соответственно поплывут планы много где"
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587256
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orcl_1989Да код изменить нельзя.


Ну тогда SQL profile...

SY.
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39587258
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там литералы...
...
Рейтинг: 0 / 0
contex индекс и оптимизатор
    #39589176
KoTTT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровТам литералы...
force matching signature?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / contex индекс и оптимизатор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]