powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимайзер не видит индексы
15 сообщений из 15, страница 1 из 1
Оптимайзер не видит индексы
    #39557224
Alexx_Pol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Есть 2 инстанса, на каждом я создал по 3 пустых таблички, собрал по ним статистику (num_rows = 0), создал одинаковый набор индексов.
На одном инстансе план тестового селекта юзает индексы во всю, а на втором - не использует ни один индекс, везде используя TABLE ACCESS FULL.
Подскажите, по каким причинам оптимайзер может "забивать" на индексы?
Спасибо.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557225
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Alexx_Pol,

зачем индексный доступ по совсем пустым таблицам, у которых даже сегменты не созданы скорее всего?
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557231
Alexx_Pol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

Пустые таблички - это макеты таблиц с реальными данными и проблема с индексами на них такая же.
То есть один и тот же запрос с реальными таблицами на одном инстансе отбегает быстро, а на втором - виснет (наполнены они одинаково).
Пытаясь понять руткоз, я уже проверил индексы, пересобрал статистику, но ничего не помогло.

Эксперимент с пустыми табличками - еще одна попытка понять руткоз.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557235
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexx_Pol,

Выполни трассировку 10053 на обоих экземплярах. Сравни два файла.
Увидишь не только различия в построении плана, но и в параметрах оптимизатора, если таковые имеются.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557236
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexx_PolВсем привет.
Есть 2 инстанса, на каждом я создал по 3 пустых таблички, собрал по ним статистику (num_rows = 0), создал одинаковый набор индексов.
На одном инстансе план тестового селекта юзает индексы во всю, а на втором - не использует ни один индекс, везде используя TABLE ACCESS FULL.
Подскажите, по каким причинам оптимайзер может "забивать" на индексы?
Спасибо.
"То есть один и тот же запрос с реальными таблицами на одном инстансе отбегает быстро, а на втором - виснет (наполнены они одинаково)".
Попробуйте так - запускаете там, где полные боевые таблицы
Код: plsql
1.
2.
select a.table_name, b.index_name, a.blocks, b.CLUSTERING_FACTOR  from user_tables a, user_indexes b
where a.table_name in ( 'Проблемная_таблица1','Проблемная_таблица2','Проблемная_таблица3' )  and a.table_name = b.table_name


И сравниваете на двух инстансах BLOCKS и CLUSTERING_FACTOR.
И что-то мне подсказывает, что Вы увидите разные цифры. Хотя думаете, что таблицы одинаковые.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557260
Alexx_Pol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP,

Почитал про CLUSTERING_FACTOR - чем он меньше, тем лучше индекс синхронизирован с таблицей.
Но на быстром сервере CLUSTERING_FACTOR в 10 раз выше, чем на медленном.

Также нашел такое "The table rows are synchronized with the index when the clustering factor is close to the number of data blocks" - и опять же CLUSTERING_FACTOR на медленном сервере одного опрядка с BLOCKS, а у быстрого разница в несколько порядков.

Поэтому в моем случае сравнение по CLUSTERING_FACTOR и BLOCKS не объясняет, почему "медленный сервер" не использует индексы.
Но спасибо за совет.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557262
Alexx_Pol,

версия оракла-то хоть какая? а то, может, какой-нибудь "шутник", что-то проверяя, перевел индексы в INVISIBLE-state и забыл их вернуть обратно, а ты тут пляшешь со статистиками и параметрами инстанса....

Ну и про трассировку 10053 dbms_photoshop уже подсказал. Если уже ничего не помогло, то самое время сделать её....
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557263
Alexx_Pol,

И такой момент поясни, а то как-то непонятно ты его выразил - если взять абсолютно "пустые" таблицы, без данных, совсем.... запрос на проблемном инстансе также медленно работает? Сейчас момент с использованием/неиспользованием индекса не рассматриваем. Чистое время выполнения запроса на пустых таблицах на обоих инстансах.
Ну и раз ты уже столько говоришь о планах, может пришло время показать их? Может в них есть что-то, чего ты решил нам не показать, посчитав это не относящимся к делу...
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557292
Alexx_Pol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

Версия Оракл - 12.1, индексы я пересоздавал несколько раз, поэтому вряд ли они в INVISIBLE-state
Трассировку таки попробую - еще руки не дошли.
Чистое время выполнения запроса на пустых таблицах на обоих инстансах - 0.1sec, запрос медленно работает только на реальных заполненных.
Планы вряд ли чем-то помогут. Главное, что в одном случае оптимайзер использует индексы, а в другом - ни одного в принципе.
Добавил redo log file size на всякий случай - не помогло.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557298
Alexx_Pol,

ну, ты ближе к "телу", тебе виднее, конечно.
мы же кроме "результатов анализов", сделанных тобой, ничего не видим...
и всё что можем - это подсказать тебе какие анализы ещё нужно взять....

но чудес же не бывает. раз есть разное поведение, значит есть какие-то вполне объяснимые причины. осталось только найти их....

в целом, какие шаги уже были сделаны?
0) программно-аппаратная платформа - в обоих случаях одинакова или примерно сопоставимая по производительности?
1) параметры инициализации инстанса - идентичны, без критических отличий (разные пути и прочие "имена" не рассматриваем)?
2) объем, распределение данных и схемы их индексирования - идентичны?
3) объектную статистику актуализировал? она сопоставима по своим параметрам на обоих инстансах?
4) СИСТЕМНУЮ статистику в период типовой нагрузки на сервер собрал? Различия отсутствуют?
может что-то ещё?

Если на все вопросы ответ утвердительный - пора бы делать "вскрытие" пациента. Снимай с него трассу... Может чего и увидишь...
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557369
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexx_PolAndy_OLAP,

Почитал про CLUSTERING_FACTOR - чем он меньше, тем лучше индекс синхронизирован с таблицей.
Но на быстром сервере CLUSTERING_FACTOR в 10 раз выше, чем на медленном.

Также нашел такое "The table rows are synchronized with the index when the clustering factor is close to the number of data blocks" - и опять же CLUSTERING_FACTOR на медленном сервере одного опрядка с BLOCKS, а у быстрого разница в несколько порядков.

Поэтому в моем случае сравнение по CLUSTERING_FACTOR и BLOCKS не объясняет, почему "медленный сервер" не использует индексы.
Но спасибо за совет.
Коллега, а Вы не перепутали случайно, когда смотрели на серверы? "Быстрый", на таблицах которого CLUSTERING_FACTOR в 10 раз больше, как раз может для одной или всех трех таблиц использовать TABLE ACCESS (FULL), все содержимое попадает или в кэш СХД, или в оперативную память, все хорошо. А "медленный" как раз пытается делать INDEX (RANGE SCAN), читает из другого tablespace, там bad blocks на диске/дисках - и получаете тупняк.
У вас rebuild на одинаковых таблицах на обоих инстансах проходит за одинаковое время?
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557378
Andy_OLAPтам bad blocks на диске/дисках - и получаете тупняк.а во тут даже мне интересно стало.....
можно с этого места поподробнее.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557387
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхAndy_OLAPтам bad blocks на диске/дисках - и получаете тупняк.а во тут даже мне интересно стало.....
можно с этого места поподробнее.
Давайте сначала дождемся ответа, что ребилд индексов проходит за одно и то же время на обоих. Может быть, железо на "медленном" дышит еле-еле в предсмертной агонии.
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39557605
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
...
Рейтинг: 0 / 0
Оптимайзер не видит индексы
    #39561028
Alexx_Pol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь.
На данный момент сошлись на том, что при настройке оракла ИТ выставили скрытый параметр _optimizer_connect_by_cost_based = False, а он должен быть True. Поменяли, бутнули - планы наконец-то сошлись. Также собрали статистику "быстрого" сервера и теперь будем ее импортить на другие сервера. То есть пользоваться фиксированной статистикой.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимайзер не видит индексы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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