|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
Почему FORALL DELETE FROM может не использовать индекс? Есть таблица с индексом по ID Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
На таблицу собрана статистика Код: plsql 1. 2. 3. 4.
В коде пакета есть удаление Код: plsql 1. 2.
Это удаление пораждает запрос Код: plsql 1. 2.
У запроса вот такой план, где видно что идет FULL SCAN и никакой индекс не используется. Код: sql 1. 2. 3. 4.
Вся процедура висит из-за этого. Как заставить использовать индекс? Или почему он может не использоваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 23:52 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
сколько строк-то в таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 04:13 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
alex-lsсколько строк-то в таблице?Судя по cost=2 около нуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 06:46 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
MinistrBob Код: plsql 1.
Кого пытаешься запутать? - Себя? Oracle? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 07:26 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
-2-Судя по cost=2 около нуля. да я сам понимаю, просто хотел намекнуть автору ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 07:42 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
-2-alex-lsсколько строк-то в таблице?Судя по cost=2 около нуля. Всего 150 000 000 строк ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 08:26 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
ElicMinistrBob Код: plsql 1.
Кого пытаешься запутать? - Себя? Oracle? Спасибо за намёк. Я как раз пытаюсь распутать, код не я писал :) Заменил IN на = и все взлетело. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 08:28 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
MistrBlob, а на access/filter predicates можно глянуть? Мой оптимизитор, как и ожидалось, сам преобразует такой предикат в условие равенства. Код: plsql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 09:14 |
|
Почему FORALL DELETE FROM может не использовать индекс?
|
|||
---|---|---|---|
#18+
AmKadMistrBlob, а на access/filter predicates можно глянуть? Мой оптимизитор, как и ожидалось, сам преобразует такой предикат в условие равенства. Код: plsql 1. 2. 3. 4. 5. 6. 7.
План хороший, для такого запроса, но реальный запрос такого плана не имеет. Да ладно, уже руками поправил. Самое интересное это Windows 11.2.0.4, а до этого процедура работала на AIX 11.2.0.4 там всё было хорошо. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 22:20 |
|
|
start [/forum/topic.php?fid=52&fpage=73&tid=1882329]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 392ms |
0 / 0 |