|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
Приветствую! Запрос значительно тормозил и оптимизатор не хотел использовать индексы Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
удивился, что индекс не используется. Решил переписать запрос на аналогичный по смыслу Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
и индекс вдруг вкючился. Но почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 12:36 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
Кроик Семён, это не имеет значения, да и ответ на этот вопрос даст разглядывания плана запроса. Имеет значение совершенно другое - кто тебя так перепугал, что вдруг решил, что использование индекса "лучшее". А если, не дай бог, в какой книжке вредных советов вычитал, то вот тебе разумный совет: Сожги ту книжку в печи немедленно , чтобы самому не читать и у других возможности набраться безумия не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 15:08 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 15:35 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
booby Имеет значение совершенно другое - кто тебя так перепугал, что вдруг решил, что использование индекса "лучшее". перепугать так его могло знание поддерживаемой системы, и особенностей данных, в этой системе хранящихся. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 15:55 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
booby, Дело не в прочитанных книгах :) , а в невероятном замедлении запросов если индекс не используется - ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 16:03 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
Кроик Семён, приложенные запросы отличаются от стартового отсутствием сортировки. Что в итоге вам надо то? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 16:16 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
Кроик Семён, автора в невероятном замедлении запросов если индекс не используется похоже, ты даже не смотришь в то, что выкладываешь. И это правильно. Просто добавь rownum = 1 в исходный запрос - жизнь и наладится. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 16:36 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
автор Почему лучшее использование индексов при таком переписывании запроса Видно, что при использовании предиката Код: plsql 1.
подхватывается индекс IDX_PROTOCOL__SUCH_TBLFK, тогда как с предикатом Код: plsql 1.
подхватывается SYS_C003161, потому что стоимость его сканирования 4680 дешевле, чем у предыдущего 5000. Почему медленнее - недостаточно информации, предполагаю это index skip scan в обёртке index range scan. Тебе стоит приложить вывод DISPLAY_CURSOR() с предикатами и run time статистиками ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 16:55 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
Alexander Anokhin, да. я был неправ. вероятно, это PK нужно использовать что-то вроде Код: plsql 1.
вместо and ID > 170834164 или (ID + 0) > 170834164 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 17:07 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
Провел тест, выбрал другой ID, гораздо более меньший, чтобы запрос начал выдавать больше одной строки. И интересно, вариант с EXISTS (и ORDER BY) стал резко медленее . Всем большое спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 17:23 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
Кроик Семён ... Всем большое спасибо ой... ох, книжки надо бы жечь, но не все... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 17:26 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 17:39 |
|
Почему лучшее использование индексов при таком переписывании запроса
|
|||
---|---|---|---|
#18+
вобщем, скорость выполнения запроса (с выгрузкой всех строк) почти одинаковая ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 17:41 |
|
|
start [/forum/topic.php?fid=52&msg=39954947&tid=1881280]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
215ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 318ms |
0 / 0 |