|
|
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Добрый, форум! Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время. Но вот при попытке сделать INSERT INTO SELECT этот же запрос заканчивается ошибкой "ORA-01555: слишком старый снимок:...". Пробовала на другом сервере, постоянную и временную таблицу, результат тот же. Что-то даже мысли нет, в чем может быть причина, в какую сторону копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:29 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:31 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
приемлемое время - это сколько дней/часов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:47 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.выполнимый за приемлемое время Что под этим понимается? Получение всех строк или только первый фетч? Елена Н.этот же запрос заканчивается План при insert select совпадает с планом при просто select? При наличии достаточного объёма TEMP и терпения, есть метод materialize'em all. Но лучше регулярно так не делать. Если сложный тяжёлый запрос надо выполнять регулярно, то смотрите в сторону предматериализации его составляющих, матьеговью с query rewrite и подобные гадости механизмы. Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:52 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., имхо как минимум 4 варианта 1) выполнить вставку при минимальной активности, напр ночью 2) еще больше "дооптимизировать" запрос 3) в старих версиях можно было фиктивными сессиями препядствовать затиранию в роллбек кольце 4) менять железо ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:05 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., Если запрос сложный и долгий но результат все равно куда-то пишется, можно разбить на 3-4 быстрых и писать по частям (если это позволяет запрос). Но пока очень мало вводных данных для принятия решения как лучше помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:17 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
MaximaXXLразбить на 3-4 быстрых и получить 3-4 несогласованных между собой набора данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:20 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, serialize, as of timestamp и прочее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:23 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вы знаете информационную систему ТС и уверены, что эти транзакции получится сериализовать? По одной из нескольких причин запрос падает с ora-01555 и в качестве решения вы даете совет "as of timestamp". Отлично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:26 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, Так мы и запроса не знаем. Может там декартово произведение миллиардных таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:32 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
ВадиманПо одной из нескольких причин запрос падает с ora-01555 Для случая - nested loop по FTA для большой таблицы в подзапросе - запросто можно словить ora-01555, при этом материализовать консистентные предварительные данные вполне себе можно без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:36 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
но мы же не знаем причину. Вдруг там просто не хватает undo. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:44 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, Мы вообще мало что знаем ... посему и фраза "Но пока очень мало вводных данных для принятия решения как лучше помочь" Может там 10 union all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:48 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, Мой хрустальный шар в майский снег плохо работает. В отделе телепатов все в отпусках на праздники. Думаю, у тебя примерно также. ТС проснётся и опишет подробности, если вспомнит вообще, что писала сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 11:31 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Ого, сколько... Так, 1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) 2. авторЧто под этим понимается? Получение всех строк или только первый фетч?все данные 3. авторПлан при insert select совпадает с планом при просто select?сейчас еще раз специально уточнила, одинаковый 4. автори вот что он говорит: http://www.orafaq.com/wiki/ORA-01555 не уверена, конечно, что я точно понимаю механизм этой ошибки, не приходилось так глубоко копать, но сервера, а которых пробовала, тестовые, если изменения там и есть, то кратковременные, а проблема постоянная, не первый раз уже в нее утыкаюсь с этим же запросом, да каждый раз откладываю решение на потом 5. авторвыполнить вставку при минимальной активности, напр ночью запуск процесса на ночь не помогает 6. авторМожет там 10 union all всего 5 :) 7. авторМожет там декартово произведение миллиардных таблиц таблицы большие, но в общем-то никаких сверхестественных механизмов в нем нет, большие таблицы + справочники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 14:28 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) Код: plsql 1. 2. И можно не разбираться в чем именно там причина ORA - 01555 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 14:42 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
ora601Елена Н.1. пропущено... минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) Код: plsql 1. 2. И можно не разбираться в чем именно там причина ORA - 01555 а какая разница, insert или create імхо слетит также проблема видать в другом ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 15:12 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.Ого, сколько... Так, 1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) 5. авторвыполнить вставку при минимальной активности, напр ночью запуск процесса на ночь не помогает 5-7 минут ето очень мало, для 1555 про ночь тоже странно попробовать выполнить любой запрос с фулл скан таблицы перед Вашим, мож слетать из-за отложеноой очистки блоков (или как оно там правильно называется) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 15:21 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
LOB-ы используются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2017, 08:29 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
мож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2017, 08:58 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
авторCREATE TABLE temp AS SELECT ... INSERT INTO src SELECT * FROM temp это тоже не работает авторLOB-ы используются? лобы проверю, но по-моему нет автормож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555? в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555 вот что такого то в этой вставке, что она так на скорость запроса влияет? p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2017, 12:35 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555 вот что такого то в этой вставке, что она так на скорость запроса влияет? p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то паралельно ничего не вставляется? мож банально висит из-за пк/фк + сравнить планы селекта и инсерта ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 08:48 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., в догонку слетает и create table as большая вероятность того что планы select и iserta существенно разнятся напр из-за first/all rows ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 09:35 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., добавьте в запрос row_number и поверх запустите count(*) - тоже минуты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:07 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
stax.., когда девушка говорит про 2-7 минут надо обязательно уточнять получает ли она все данные или только первый результат. учитывая уровень знаний вполне вероятно что получение всех данных может занять и неделю, оттуда и 1555 ноги растут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:07 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vintstax.., когда девушка говорит про 2-7 минут надо обязательно уточнять получает ли она все данные или только первый результат. учитывая уровень знаний вполне вероятно что получение всех данных может занять и неделю, оттуда и 1555 ноги растут. имхо, вы явно недооцениваете девушку ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:15 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vint, так уже спрашивали Елена Н.envЧто под этим понимается? Получение всех строк или только первый фетч?все данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:17 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
stax..,env вы видели запрос чтобы это утверждать?) учитывая показанный в этой теме уровень знаний вполне вероятно что девушка считает получение первых строк на экране гуя - как получение результата запроса. спрашивать надо так: Код: plsql 1. выполняется за....? все остальное домыслы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:30 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vintstax..,env вы видели запрос чтобы это утверждать?) учитывая показанный в этой теме уровень знаний вполне вероятно что девушка считает получение первых строк на экране гуя - как получение результата запроса. спрашивать надо так: Код: plsql 1. выполняется за....? все остальное домыслы. ну й посоветовали такой запрос может иметь совсем другой план, напр все из индекса Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. я в count добавляю неиндексированные поля из таблиц .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:40 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
stax.., уверен? она же явно сказала что у нее 5 юнионов) и в твоем примере, если уж придираться, должен быть запрос select * from ( select * from emp where deptno=10) который в сложных случаях не выкинет информацию и не оптимизируется ораклом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:50 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vintstax.., уверен? она же явно сказала что у нее 5 юнионов) и в твоем примере, если уж придираться, должен быть запрос select * from ( select * from emp where deptno=10) который в сложных случаях не выкинет информацию и не оптимизируется ораклом. уверен на 91.73% Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 11:08 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
stax.., опять гадания на кофейной гуще. я думаю простенький запрос бы у автора не работал 2-7 минут и дал совет конкретно исходя из слов о юнионах и времени запроса, а ты пытаешься доказать что-то на основе сферического коня в вакууме. зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 11:21 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vintstax.., опять гадания на кофейной гуще. я думаю простенький запрос бы у автора не работал 2-7 минут и дал совет конкретно исходя из слов о юнионах и времени запроса, а ты пытаешься доказать что-то на основе сферического коня в вакууме. зачем? я ничего не доказываю, а считаю что у select count(1) from (...), для хорошо проиндексированной базы план может поменяется, а может и нет из моей практики, для моей базы, намного чаще менялся ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 11:50 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
авторпаралельно ничего не вставляется? мож банально висит из-за пк/фк ничего не вставляется, обычный большой селект вот последняя попытка: select блаблабла from тратата 4 мин далее create table TTT as select блаблабла from тратата 11-я минута идет и надежды нет + сравнить планы селекта и инсерта в очередной раз сравнила, практически идентичны Да забила я... пошла как Красная шапочка, длинной дорогой, курсор и построчная вставка, так не тормозит :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:07 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.11-я минута идет и надежды нет события ожидания то какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:10 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
До кучи select count(*) from тратата 70 sec ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:14 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
авторсобытия ожидания то какие? да отменила, опять будет 1555 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:15 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н. ...курсор и построчная вставка, так не тормозит :( Обычно "пулемёт" догоняет автора.... Сам бы решал так: 1. Тест на зависимость проблемы от конкретного запроса. Пусть будет другой запрос, проверим IO Код: plsql 1. 2. 3. 4. 2. Если в п.1 тоже долго, то аналогично п.1 вставку в готовую таблицу в другом tablespace 3. Если в п.2 тоже долго, то вставку в таблицу в другом tablespace в другой дисковой группе. Мониторинг IO администратором железа. С чем сталкивался сам: глюк одного HDD в рейде вызывал резкое снижение скорости записи выше некоторой пороговой нагрузки. Ниже этого порога глюк не проявлялся. В HP EVA. Без железного админа не поймать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:38 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Сравнение планов авторSQL> delete from plan_table; 0 rows deleted. SQL> explain plan for 2 SELECT d.doc_id, d.doc_number, d.doc_date, d.class, d.category, 3 d.customer_id, d.customer_site_use_id, ec.customer_number, ec.customer_alt_name, 4 DECODE(nvl('1', '0'), '0', null, 5 '1', ec.name_pred, 6 '2', to_char(d.period_beg, 'yyyymmdd'), 7 '3', d.category, 8 '4', /*aa.attribute2||' '||*/ec.customer_alt_name, 9 '5', ec.customer_number||' '||ec.customer_alt_name) group1, 10 DECODE(nvl('2', '0'), '0', null, 11 '1', ec.name_pred, 12 '2', to_char(d.period_beg, 'yyyymmdd'), 13 '3', d.category, 14 '4', /*aa.attribute2||' '||*/ec.customer_alt_name, 15 '5', ec.customer_number||' '||ec.customer_alt_name) group2, 16 DECODE(nvl('3', '0'), '0', null, 17 '1', ec.name_pred, 18 '2', to_char(d.period_beg, 'yyyymmdd'), 19 '3', d.category, 20 '4', /*aa.attribute2||' '||*/ec.customer_alt_name, 21 '5', ec.customer_number||' '||ec.customer_alt_name) group3, 22 d.period_beg, d.period_end, 23 d.due_doc, d.in_dolg, d.amount_due, d.amount_opl, d.out_dolg 24 FROM esb_ar_debt2_v d, 25 ra_esb_customers ec/*, 26 ra_addresses_all aa*/ 27 WHERE d.customer_id = ec.customer_id 28 -- AND ec.customer_id = aa.customer_id 29 /*AND d.status_trx = 'OP'*/ 30 AND ec.vid_en = '1' 31 AND ec.kod_pred = DECODE(5, -1, ec.kod_pred, 5) 32 AND ec.otd = NVL(7, ec.otd) 33 AND ec.y4 = NVL(75, ec.y4) 34 AND ec.dog = NVL(null, ec.dog) 35 -- AND aa.attribute2 = NVL(to_char(P_KOD_PLAT), aa.attribute2) 36 -- AND ((P_GROUP1<>'4' AND P_GROUP2<>'4' AND P_GROUP3<>'4') OR aa.attribute3 = '1'); Explained. SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | ---------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 440 | 675 | |* 1 | FILTER | | | | | | 2 | SORT GROUP BY | | 1 | 440 | 675 | |* 3 | HASH JOIN OUTER | | 1 | 440 | 650 | | 4 | NESTED LOOPS OUTER | | 1 | 431 | 645 | | 5 | NESTED LOOPS | | 1 | 334 | 644 | | 6 | NESTED LOOPS OUTER | | 1 | 305 | 643 | | 7 | NESTED LOOPS | | 1 | 293 | 643 | | 8 | NESTED LOOPS | | 1 | 273 | 642 | | 9 | NESTED LOOPS | | 1 | 254 | 640 | |* 10 | TABLE ACCESS FULL | HZ_CUST_ACCOUNTS | 1 | 64 | 624 | |* 11 | VIEW | ESB_AR_SALDO6 | 1 | 190 | 640 | | 12 | UNION-ALL PARTITION | | | | | |* 13 | FILTER | | | | | | 14 | NESTED LOOPS | | 1 | 108 | 9 | | 15 | NESTED LOOPS OUTER | | 1 | 91 | 8 | | 16 | NESTED LOOPS | | 1 | 86 | 8 | |* 17 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 18 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 19 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 28 | 2 | |* 20 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 1 | |* 21 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 22 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 23 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | | 24 | NESTED LOOPS OUTER | | 1 | 147 | 23 | | 25 | NESTED LOOPS | | 1 | 141 | 22 | | 26 | NESTED LOOPS OUTER | | 1 | 108 | 8 | |* 27 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 28 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 29 | VIEW PUSHED PREDICATE | ESB_RA_CUSTOMER_TRX_ALL | 1 | 50 | 2 | | 30 | NESTED LOOPS | | 1 | 50 | 4 | | 31 | NESTED LOOPS OUTER | | 1 | 33 | 3 | | 32 | TABLE ACCESS BY INDEX ROWID| RA_CUSTOMER_TRX_ALL | 1 | 28 | 3 | |* 33 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 2 | |* 34 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 35 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 36 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | |* 37 | TABLE ACCESS BY INDEX ROWID | AR_RECEIVABLE_APPLICATIONS_ALL | 1 | 33 | 14 | |* 38 | INDEX RANGE SCAN | AR_RECEIVABLE_APPLICATIONS_N8 | 29 | | 3 | | 39 | VIEW PUSHED PREDICATE | ESB_RA_CUSTOMER_TRX_ALL | 1 | 6 | 1 | | 40 | NESTED LOOPS | | 1 | 36 | 3 | | 41 | NESTED LOOPS OUTER | | 1 | 29 | 3 | | 42 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 24 | 3 | |* 43 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 2 | |* 44 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | |* 45 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | 7 | | |* 46 | TABLE ACCESS BY INDEX ROWID | AR_ADJUSTMENTS_ALL | 1 | 21 | 2 | | 47 | NESTED LOOPS | | 1 | 129 | 11 | | 48 | NESTED LOOPS | | 1 | 108 | 9 | | 49 | NESTED LOOPS OUTER | | 1 | 91 | 8 | | 50 | NESTED LOOPS | | 1 | 86 | 8 | |* 51 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 52 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 53 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 28 | 2 | |* 54 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 1 | |* 55 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 56 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 57 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | |* 58 | INDEX RANGE SCAN | AR_ADJUSTMENTS_N3 | 1 | | 1 | |* 59 | TABLE ACCESS BY INDEX ROWID | AR_RECEIVABLE_APPLICATIONS_ALL | 1 | 28 | 8 | | 60 | NESTED LOOPS | | 1 | 136 | 17 | | 61 | NESTED LOOPS | | 1 | 108 | 9 | | 62 | NESTED LOOPS OUTER | | 1 | 91 | 8 | | 63 | NESTED LOOPS | | 1 | 86 | 8 | |* 64 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 65 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 66 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 28 | 2 | |* 67 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 1 | |* 68 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 69 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 70 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | |* 71 | INDEX RANGE SCAN | AR_RECEIVABLE_APPLICATIONS_N3 | 14 | | 3 | |* 72 | FILTER | | | | | | 73 | NESTED LOOPS | | 1 | 92 | 9 | | 74 | NESTED LOOPS | | 1 | 88 | 9 | | 75 | NESTED LOOPS | | 1 | 79 | 8 | |* 76 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 61 | 6 | |* 77 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 78 | TABLE ACCESS BY INDEX ROWID | AR_CASH_RECEIPTS_ALL | 1 | 18 | 2 | |* 79 | INDEX UNIQUE SCAN | AR_CASH_RECEIPTS_U1 | 1 | | 1 | | 80 | TABLE ACCESS BY INDEX ROWID | AR_RECEIPT_METHODS | 1 | 9 | 1 | |* 81 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | | | |* 82 | INDEX UNIQUE SCAN | AR_RECEIPT_CLASSES_U1 | 1 | 4 | | |* 83 | TABLE ACCESS BY INDEX ROWID | AR_RECEIVABLE_APPLICATIONS_ALL | 1 | 31 | 7 | | 84 | NESTED LOOPS | | 1 | 113 | 16 | | 85 | NESTED LOOPS | | 1 | 82 | 9 | | 86 | NESTED LOOPS | | 1 | 78 | 9 | | 87 | NESTED LOOPS | | 1 | 69 | 8 | |* 88 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 51 | 6 | |* 89 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 90 | TABLE ACCESS BY INDEX ROWID | AR_CASH_RECEIPTS_ALL | 1 | 18 | 2 | |* 91 | INDEX UNIQUE SCAN | AR_CASH_RECEIPTS_U1 | 1 | | 1 | | 92 | TABLE ACCESS BY INDEX ROWID | AR_RECEIPT_METHODS | 1 | 9 | 1 | |* 93 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | | | |* 94 | INDEX UNIQUE SCAN | AR_RECEIPT_CLASSES_U1 | 1 | 4 | | | 95 | INLIST ITERATOR | | | | | |* 96 | INDEX RANGE SCAN | AR_RECEIVABLE_APPLICATIONS_N1 | 6 | | 3 | | 97 | TABLE ACCESS BY INDEX ROWID | HZ_CUST_ACCT_SITES_ALL | 2 | 38 | 2 | |* 98 | INDEX RANGE SCAN | HZ_CUST_ACCT_SITES_N3 | 2 | | 1 | |* 99 | TABLE ACCESS BY INDEX ROWID | HZ_PARTY_SITES | 1 | 20 | 1 | |*100 | INDEX UNIQUE SCAN | HZ_PARTY_SITES_U1 | 1 | | | |*101 | INDEX UNIQUE SCAN | HZ_LOCATIONS_U1 | 1 | 12 | | | 102 | TABLE ACCESS BY INDEX ROWID | HZ_PARTIES | 1 | 29 | 1 | |*103 | INDEX UNIQUE SCAN | HZ_PARTIES_U1 | 1 | | | | 104 | TABLE ACCESS BY INDEX ROWID | YY_TS_OTDCONS | 107 | 10379 | 1 | |*105 | INDEX UNIQUE SCAN | YY_IU_OTDCONS | 1 | | | | 106 | TABLE ACCESS FULL | YY_TS_BUDGETS | 1062 | 9558 | 4 | ---------------------------------------------------------------------------------------------------------------- PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter((SUM(CASE WHEN ("S"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."TRX_DATE"<"APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND ("S"."APPLY_DATE" IS NULL OR "S"."APPLY_DATE"<"APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) AND NVL("S"."CUSTOMER_TRX_ID",0)<>(-1)) THEN "S"."AMOUNT" ELSE 0 END )<>0 OR SUM(CASE WHEN ("S"."TRX_DATE">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"() AND "S"."CLASS"='INV' AND "S"."APPLY_DATE" IS NULL) THEN "S"."AMOUNT" ELSE 0 END )<>0 OR SUM(CASE WHEN ((("S"."TRX_DATE">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"() AND "S"."CLASS"='PMT' AND "S"."APPLY_DATE" IS NULL) OR ("S"."APPLY_DATE" IS NOT NULL AND "S"."APPLY_DATE">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) AND NVL("S"."CUSTOMER_TRX_ID",0)<>(-1)) THEN "S"."AMOUNT" ELSE 0 END )<>0)) 3 - access("CUST_ACCT"."ATTRIBUTE5"="BUD"."C_BUDGET"(+)) 10 - filter(DECODE("CUST_ACCT"."ATTRIBUTE_CATEGORY",'▌ыхъЄЁю¤эхЁуш ',1,'╥хяыю',2,NULL)=1 AND ("CUST_ACCT"."ATTRIBUTE_CATEGORY"='╥хяыю' OR "CUST_ACCT"."ATTRIBUTE_CATEGORY"='▌ыхъЄЁю¤эхЁуш ') AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("CUST_ACCT"."ATTRIBUTE3")=5 AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGMENT"("CUST_ACCT"."ATTRIBUTE1",1,' .'))=NVL(7,"APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGMENT"("CUST_ACCT"."ATTR IBUTE1",1,'.'))) AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGMENT"("CUST_A CCT"."ATTRIBUTE1",2,'.'))=NVL(75,"APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGM ENT"("CUST_ACCT"."ATTRIBUTE1",2,'.'))) AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GET PARTOFSEGMENT"("CUST_ACCT"."ATTRIBUTE1",3,'.'))=NVL(NULL,"APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_R EP_UTILS"."GETPARTOFSEGMENT"("CUST_ACCT"."ATTRIBUTE1",3,'.')))) 11 - filter("S"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID") 13 - filter(TO_DATE(NULL) IS NULL OR "APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()>=TO_DATE(NULL)) 17 - filter("PS"."CUSTOMER_TRX_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 18 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 20 - access("PS"."CUSTOMER_TRX_ID"="CT"."CUSTOMER_TRX_ID") 21 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("CT"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"CT"."ATTRIBUTE6",NULL))) 23 - access("CT"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 27 - filter("PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 28 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 33 - access("PS"."CUSTOMER_TRX_ID"="CT"."CUSTOMER_TRX_ID") 34 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("CT"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"CT"."ATTRIBUTE6",NULL))) 36 - access("CT"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 37 - filter(("RA"."STATUS"||''='APP' OR "RA"."STATUS"||''='ACC') AND NVL("RA"."CONFIRMED_FLAG",'Y')='Y' AND ("RA"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) 38 - access("PS"."PAYMENT_SCHEDULE_ID"="RA"."APPLIED_PAYMENT_SCHEDULE_ID") filter("RA"."APPLIED_PAYMENT_SCHEDULE_ID" IS NOT NULL) 43 - access("RA"."CUSTOMER_TRX_ID"="CT"."CUSTOMER_TRX_ID") 44 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("CT"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"CT"."ATTRIBUTE6",NULL))) 45 - access("CT"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 46 - filter("ADJ"."STATUS"||''='A' AND ("ADJ"."APPLY_DATE" IS NULL OR "ADJ"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) 51 - filter("PS"."CUSTOMER_TRX_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 52 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 54 - access("PS"."CUSTOMER_TRX_ID"="CT"."CUSTOMER_TRX_ID") 55 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("CT"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"CT"."ATTRIBUTE6",NULL))) 57 - access("CT"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 58 - access("PS"."PAYMENT_SCHEDULE_ID"="ADJ"."PAYMENT_SCHEDULE_ID") 59 - filter("RA"."STATUS"||''='APP' AND NVL("RA"."CONFIRMED_FLAG",'Y')='Y' AND ("RA"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) 64 - filter("PS"."CLASS"||''='CM' AND "PS"."CUSTOMER_TRX_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 65 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 67 - access("PS"."CUSTOMER_TRX_ID"="CT"."CUSTOMER_TRX_ID") 68 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("CT"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"CT"."ATTRIBUTE6",NULL))) 70 - access("CT"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 71 - access("PS"."PAYMENT_SCHEDULE_ID"="RA"."PAYMENT_SCHEDULE_ID") 72 - filter(TO_DATE(NULL) IS NULL OR "APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()>=TO_DATE(NULL)) 76 - filter("PS"."CASH_RECEIPT_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 77 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 79 - access("PS"."CASH_RECEIPT_ID"="CR"."CASH_RECEIPT_ID") 81 - access("CR"."RECEIPT_METHOD_ID"="RM"."RECEIPT_METHOD_ID") 82 - access("RM"."RECEIPT_CLASS_ID"="RC"."RECEIPT_CLASS_ID") 83 - filter(NVL("RA"."CONFIRMED_FLAG",'Y')='Y' AND ("RA"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END" ())) 88 - filter("PS"."CASH_RECEIPT_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 89 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 91 - access("CR"."CASH_RECEIPT_ID"="PS"."CASH_RECEIPT_ID") 93 - access("CR"."RECEIPT_METHOD_ID"="RM"."RECEIPT_METHOD_ID") 94 - access("RM"."RECEIPT_CLASS_ID"="RC"."RECEIPT_CLASS_ID") 96 - access("RA"."CASH_RECEIPT_ID"="PS"."CASH_RECEIPT_ID" AND ("RA"."STATUS"='ACC' OR "RA"."STATUS"='APP')) 98 - access("ACCT_SITE"."CUST_ACCOUNT_ID"="CUST_ACCT"."CUST_ACCOUNT_ID") 99 - filter("PARTY_SITE"."IDENTIFYING_ADDRESS_FLAG"='Y') 100 - access("PARTY_SITE"."PARTY_SITE_ID"="ACCT_SITE"."PARTY_SITE_ID") 101 - access("PARTY_SITE"."LOCATION_ID"="LOC"."LOCATION_ID"(+)) 103 - access("PARTY"."PARTY_ID"="CUST_ACCT"."PARTY_ID") 105 - access("OTD"."NOTD_ID"(+)=TO_NUMBER("CUST_ACCT"."ATTRIBUTE3")) Note: cpu costing is off 212 rows selected. SQL> delete from plan_table; 107 rows deleted. SQL> explain plan for 2 insert into esb_ardynnop_table 3 SELECT d.doc_id, d.doc_number, d.doc_date, d.class, 4 d.customer_id, d.customer_site_use_id, ec.customer_number, ec.customer_alt_name, 5 DECODE(nvl('1', '0'), '0', null, 6 '1', ec.name_pred, 7 '2', to_char(d.period_beg, 'yyyymmdd'), 8 '3', d.category, 9 '4', /*aa.attribute2||' '||*/ec.customer_alt_name, 10 '5', ec.customer_number||' '||ec.customer_alt_name) group1, 11 DECODE(nvl('2', '0'), '0', null, 12 '1', ec.name_pred, 13 '2', to_char(d.period_beg, 'yyyymmdd'), 14 '3', d.category, 15 '4', /*aa.attribute2||' '||*/ec.customer_alt_name, 16 '5', ec.customer_number||' '||ec.customer_alt_name) group2, 17 DECODE(nvl('3', '0'), '0', null, 18 '1', ec.name_pred, 19 '2', to_char(d.period_beg, 'yyyymmdd'), 20 '3', d.category, 21 '4', /*aa.attribute2||' '||*/ec.customer_alt_name, 22 '5', ec.customer_number||' '||ec.customer_alt_name) group3, 23 d.period_beg, d.period_end, 24 d.due_doc, d.in_dolg, d.amount_due, d.amount_opl, d.out_dolg 25 FROM esb_ar_debt2_v d, 26 ra_esb_customers ec/*, 27 ra_addresses_all aa*/ 28 WHERE d.customer_id = ec.customer_id 29 -- AND ec.customer_id = aa.customer_id 30 /*AND d.status_trx = 'OP'*/ 31 AND ec.vid_en = '1' 32 AND ec.kod_pred = DECODE(5, -1, ec.kod_pred, 5) 33 AND ec.otd = NVL(7, ec.otd) 34 AND ec.y4 = NVL(75, ec.y4) 35 AND ec.dog = NVL(null, ec.dog) 36 -- AND aa.attribute2 = NVL(to_char(P_KOD_PLAT), aa.attribute2) 37 -- AND ((P_GROUP1<>'4' AND P_GROUP2<>'4' AND P_GROUP3<>'4') OR aa.attribute3 = '1'); Explained. SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ---------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | ---------------------------------------------------------------------------------------------------------------- | 0 | INSERT STATEMENT | | 1 | 440 | 675 | |* 1 | FILTER | | | | | | 2 | SORT GROUP BY | | 1 | 440 | 675 | |* 3 | HASH JOIN OUTER | | 1 | 440 | 650 | | 4 | NESTED LOOPS OUTER | | 1 | 431 | 645 | | 5 | NESTED LOOPS | | 1 | 334 | 644 | | 6 | NESTED LOOPS OUTER | | 1 | 305 | 643 | | 7 | NESTED LOOPS | | 1 | 293 | 643 | | 8 | NESTED LOOPS | | 1 | 273 | 642 | | 9 | NESTED LOOPS | | 1 | 254 | 640 | |* 10 | TABLE ACCESS FULL | HZ_CUST_ACCOUNTS | 1 | 64 | 624 | |* 11 | VIEW | ESB_AR_SALDO6 | 1 | 190 | 640 | | 12 | UNION-ALL PARTITION | | | | | |* 13 | FILTER | | | | | | 14 | NESTED LOOPS | | 1 | 108 | 9 | | 15 | NESTED LOOPS OUTER | | 1 | 91 | 8 | | 16 | NESTED LOOPS | | 1 | 86 | 8 | |* 17 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 18 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 19 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 28 | 2 | |* 20 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 1 | |* 21 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 22 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 23 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | | 24 | NESTED LOOPS OUTER | | 1 | 147 | 23 | | 25 | NESTED LOOPS | | 1 | 141 | 22 | | 26 | NESTED LOOPS OUTER | | 1 | 108 | 8 | |* 27 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 28 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 29 | VIEW PUSHED PREDICATE | ESB_RA_CUSTOMER_TRX_ALL | 1 | 50 | 2 | | 30 | NESTED LOOPS | | 1 | 50 | 4 | | 31 | NESTED LOOPS OUTER | | 1 | 33 | 3 | | 32 | TABLE ACCESS BY INDEX ROWID| RA_CUSTOMER_TRX_ALL | 1 | 28 | 3 | |* 33 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 2 | |* 34 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 35 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 36 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | |* 37 | TABLE ACCESS BY INDEX ROWID | AR_RECEIVABLE_APPLICATIONS_ALL | 1 | 33 | 14 | |* 38 | INDEX RANGE SCAN | AR_RECEIVABLE_APPLICATIONS_N8 | 29 | | 3 | | 39 | VIEW PUSHED PREDICATE | ESB_RA_CUSTOMER_TRX_ALL | 1 | 6 | 1 | | 40 | NESTED LOOPS | | 1 | 36 | 3 | | 41 | NESTED LOOPS OUTER | | 1 | 29 | 3 | | 42 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 24 | 3 | |* 43 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 2 | |* 44 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | |* 45 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | 7 | | |* 46 | TABLE ACCESS BY INDEX ROWID | AR_ADJUSTMENTS_ALL | 1 | 21 | 2 | | 47 | NESTED LOOPS | | 1 | 129 | 11 | | 48 | NESTED LOOPS | | 1 | 108 | 9 | | 49 | NESTED LOOPS OUTER | | 1 | 91 | 8 | | 50 | NESTED LOOPS | | 1 | 86 | 8 | |* 51 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 52 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 53 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 28 | 2 | |* 54 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 1 | |* 55 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 56 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 57 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | |* 58 | INDEX RANGE SCAN | AR_ADJUSTMENTS_N3 | 1 | | 1 | |* 59 | TABLE ACCESS BY INDEX ROWID | AR_RECEIVABLE_APPLICATIONS_ALL | 1 | 28 | 8 | | 60 | NESTED LOOPS | | 1 | 136 | 17 | | 61 | NESTED LOOPS | | 1 | 108 | 9 | | 62 | NESTED LOOPS OUTER | | 1 | 91 | 8 | | 63 | NESTED LOOPS | | 1 | 86 | 8 | |* 64 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 58 | 6 | |* 65 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 66 | TABLE ACCESS BY INDEX ROWID | RA_CUSTOMER_TRX_ALL | 1 | 28 | 2 | |* 67 | INDEX UNIQUE SCAN | RA_CUSTOMER_TRX_U1 | 1 | | 1 | |* 68 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | 5 | | | 69 | TABLE ACCESS BY INDEX ROWID | RA_CUST_TRX_TYPES_ALL | 1 | 17 | 1 | |* 70 | INDEX UNIQUE SCAN | RA_CUST_TRX_TYPES_U1 | 1 | | | |* 71 | INDEX RANGE SCAN | AR_RECEIVABLE_APPLICATIONS_N3 | 14 | | 3 | |* 72 | FILTER | | | | | | 73 | NESTED LOOPS | | 1 | 98 | 9 | | 74 | NESTED LOOPS | | 1 | 94 | 9 | | 75 | NESTED LOOPS | | 1 | 79 | 8 | |* 76 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 61 | 6 | |* 77 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 78 | TABLE ACCESS BY INDEX ROWID | AR_CASH_RECEIPTS_ALL | 1 | 18 | 2 | |* 79 | INDEX UNIQUE SCAN | AR_CASH_RECEIPTS_U1 | 1 | | 1 | | 80 | TABLE ACCESS BY INDEX ROWID | AR_RECEIPT_METHODS | 1 | 15 | 1 | |* 81 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | | | |* 82 | INDEX UNIQUE SCAN | AR_RECEIPT_CLASSES_U1 | 1 | 4 | | |* 83 | TABLE ACCESS BY INDEX ROWID | AR_RECEIVABLE_APPLICATIONS_ALL | 1 | 31 | 7 | | 84 | NESTED LOOPS | | 1 | 119 | 16 | | 85 | NESTED LOOPS | | 1 | 88 | 9 | | 86 | NESTED LOOPS | | 1 | 84 | 9 | | 87 | NESTED LOOPS | | 1 | 69 | 8 | |* 88 | TABLE ACCESS BY INDEX ROWID | AR_PAYMENT_SCHEDULES_ALL | 1 | 51 | 6 | |* 89 | INDEX RANGE SCAN | AR_PAYMENT_SCHEDULES_ESB_1 | 3 | | 3 | | 90 | TABLE ACCESS BY INDEX ROWID | AR_CASH_RECEIPTS_ALL | 1 | 18 | 2 | |* 91 | INDEX UNIQUE SCAN | AR_CASH_RECEIPTS_U1 | 1 | | 1 | | 92 | TABLE ACCESS BY INDEX ROWID | AR_RECEIPT_METHODS | 1 | 15 | 1 | |* 93 | INDEX UNIQUE SCAN | AR_RECEIPT_METHODS_U1 | 1 | | | |* 94 | INDEX UNIQUE SCAN | AR_RECEIPT_CLASSES_U1 | 1 | 4 | | | 95 | INLIST ITERATOR | | | | | |* 96 | INDEX RANGE SCAN | AR_RECEIVABLE_APPLICATIONS_N1 | 6 | | 3 | | 97 | TABLE ACCESS BY INDEX ROWID | HZ_CUST_ACCT_SITES_ALL | 2 | 38 | 2 | |* 98 | INDEX RANGE SCAN | HZ_CUST_ACCT_SITES_N3 | 2 | | 1 | |* 99 | TABLE ACCESS BY INDEX ROWID | HZ_PARTY_SITES | 1 | 20 | 1 | |*100 | INDEX UNIQUE SCAN | HZ_PARTY_SITES_U1 | 1 | | | |*101 | INDEX UNIQUE SCAN | HZ_LOCATIONS_U1 | 1 | 12 | | | 102 | TABLE ACCESS BY INDEX ROWID | HZ_PARTIES | 1 | 29 | 1 | |*103 | INDEX UNIQUE SCAN | HZ_PARTIES_U1 | 1 | | | | 104 | TABLE ACCESS BY INDEX ROWID | YY_TS_OTDCONS | 107 | 10379 | 1 | |*105 | INDEX UNIQUE SCAN | YY_IU_OTDCONS | 1 | | | | 106 | TABLE ACCESS FULL | YY_TS_BUDGETS | 1062 | 9558 | 4 | ---------------------------------------------------------------------------------------------------------------- PLAN_TABLE_OUTPUT ---------------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter((SUM(CASE WHEN ("S"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."TRX_DATE"<"APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND ("S"."APPLY_DATE" IS NULL OR "S"."APPLY_DATE"<"APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) AND NVL("S"."CUSTOMER_TRX_ID",0)<>(-1)) THEN "S"."AMOUNT" ELSE 0 END )<>0 OR SUM(CASE WHEN ("S"."TRX_DATE">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"() AND "S"."CLASS"='INV' AND "S"."APPLY_DATE" IS NULL) THEN "S"."AMOUNT" ELSE 0 END )<>0 OR SUM(CASE WHEN ((("S"."TRX_DATE">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"() AND "S"."CLASS"='PMT' AND "S"."APPLY_DATE" IS NULL) OR ("S"."APPLY_DATE" IS NOT NULL AND "S"."APPLY_DATE">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"() AND "S"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) AND NVL("S"."CUSTOMER_TRX_ID",0)<>(-1)) THEN "S"."AMOUNT" ELSE 0 END )<>0)) 3 - access("CUST_ACCT"."ATTRIBUTE5"="BUD"."C_BUDGET"(+)) 10 - filter(DECODE("CUST_ACCT"."ATTRIBUTE_CATEGORY",'▌ыхъЄЁю¤эхЁуш ',1,'╥хяыю',2,NULL)=1 AND ("CUST_ACCT"."ATTRIBUTE_CATEGORY"='╥хяыю' OR "CUST_ACCT"."ATTRIBUTE_CATEGORY"='▌ыхъЄЁю¤эхЁуш ') AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("CUST_ACCT"."ATTRIBUTE3")=5 AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGMENT"("CUST_ACCT"."ATTRIBUTE1",1,' .'))=NVL(7,"APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGMENT"("CUST_ACCT"."ATTR IBUTE1",1,'.'))) AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGMENT"("CUST_A CCT"."ATTRIBUTE1",2,'.'))=NVL(75,"APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GETPARTOFSEGM ENT"("CUST_ACCT"."ATTRIBUTE1",2,'.'))) AND "APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_REP_UTILS"."GET PARTOFSEGMENT"("CUST_ACCT"."ATTRIBUTE1",3,'.'))=NVL(NULL,"APPS"."FND_NUMBER"."CANONICAL_TO_NUMBER"("APPS"."ESB_R EP_UTILS"."GETPARTOFSEGMENT"("CUST_ACCT"."ATTRIBUTE1",3,'.')))) 11 - filter("S"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID") 13 - filter(TO_DATE(NULL) IS NULL OR "APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()>=TO_DATE(NULL)) 17 - filter("PS"."CUSTOMER_TRX_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 18 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 20 - access("PS"."CUSTOMER_TRX_ID"="SYS_ALIAS_7"."CUSTOMER_TRX_ID") 21 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("SYS_ALIAS_7"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"SYS_ALIAS_7"."ATTRIBUTE6",NULL))) 23 - access("SYS_ALIAS_7"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 27 - filter("PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 28 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 33 - access("PS"."CUSTOMER_TRX_ID"="SYS_ALIAS_7"."CUSTOMER_TRX_ID") 34 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("SYS_ALIAS_7"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"SYS_ALIAS_7"."ATTRIBUTE6",NULL))) 36 - access("SYS_ALIAS_7"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 37 - filter(("RA"."STATUS"||''='APP' OR "RA"."STATUS"||''='ACC') AND NVL("RA"."CONFIRMED_FLAG",'Y')='Y' AND ("RA"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) 38 - access("PS"."PAYMENT_SCHEDULE_ID"="RA"."APPLIED_PAYMENT_SCHEDULE_ID") filter("RA"."APPLIED_PAYMENT_SCHEDULE_ID" IS NOT NULL) 43 - access("RA"."CUSTOMER_TRX_ID"="SYS_ALIAS_7"."CUSTOMER_TRX_ID") 44 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("SYS_ALIAS_7"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"SYS_ALIAS_7"."ATTRIBUTE6",NULL))) 45 - access("SYS_ALIAS_7"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 46 - filter("ADJ"."STATUS"||''='A' AND ("ADJ"."APPLY_DATE" IS NULL OR "ADJ"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) 51 - filter("PS"."CUSTOMER_TRX_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 52 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 54 - access("PS"."CUSTOMER_TRX_ID"="SYS_ALIAS_7"."CUSTOMER_TRX_ID") 55 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("SYS_ALIAS_7"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"SYS_ALIAS_7"."ATTRIBUTE6",NULL))) 57 - access("SYS_ALIAS_7"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 58 - access("PS"."PAYMENT_SCHEDULE_ID"="ADJ"."PAYMENT_SCHEDULE_ID") 59 - filter("RA"."STATUS"||''='APP' AND NVL("RA"."CONFIRMED_FLAG",'Y')='Y' AND ("RA"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"())) 64 - filter("PS"."CLASS"||''='CM' AND "PS"."CUSTOMER_TRX_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 65 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 67 - access("PS"."CUSTOMER_TRX_ID"="SYS_ALIAS_7"."CUSTOMER_TRX_ID") 68 - access("RM"."RECEIPT_METHOD_ID"(+)=TO_NUMBER(DECODE("SYS_ALIAS_7"."ATTRIBUTE_CATEGORY",'╬ЄЁшЎ. юяырЄр ёры№фю',"SYS_ALIAS_7"."ATTRIBUTE6",NULL))) 70 - access("SYS_ALIAS_7"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND "CTT"."ORG_ID"=0) 71 - access("PS"."PAYMENT_SCHEDULE_ID"="RA"."PAYMENT_SCHEDULE_ID") 72 - filter(TO_DATE(NULL) IS NULL OR "APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()>=TO_DATE(NULL)) 76 - filter("PS"."CASH_RECEIPT_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 77 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 79 - access("PS"."CASH_RECEIPT_ID"="SYS_ALIAS_17"."CASH_RECEIPT_ID") 81 - access("SYS_ALIAS_17"."RECEIPT_METHOD_ID"="SYS_ALIAS_18"."RECEIPT_METHOD_ID") 82 - access("SYS_ALIAS_18"."RECEIPT_CLASS_ID"="RC"."RECEIPT_CLASS_ID") 83 - filter(NVL("RA"."CONFIRMED_FLAG",'Y')='Y' AND ("RA"."APPLY_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END" ())) 88 - filter("PS"."CASH_RECEIPT_ID" IS NOT NULL AND "PS"."TRX_DATE"<="APPS"."ESB_REP_DEBT2"."GET_PERIOD_END"()) 89 - access("PS"."CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID" AND "PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) filter("PS"."ACTUAL_DATE_CLOSED">="APPS"."ESB_REP_DEBT2"."GET_PERIOD_BEG"()) 91 - access("SYS_ALIAS_17"."CASH_RECEIPT_ID"="PS"."CASH_RECEIPT_ID") 93 - access("SYS_ALIAS_17"."RECEIPT_METHOD_ID"="SYS_ALIAS_18"."RECEIPT_METHOD_ID") 94 - access("SYS_ALIAS_18"."RECEIPT_CLASS_ID"="RC"."RECEIPT_CLASS_ID") 96 - access("RA"."CASH_RECEIPT_ID"="PS"."CASH_RECEIPT_ID" AND ("RA"."STATUS"='ACC' OR "RA"."STATUS"='APP')) 98 - access("ACCT_SITE"."CUST_ACCOUNT_ID"="CUST_ACCT"."CUST_ACCOUNT_ID") 99 - filter("PARTY_SITE"."IDENTIFYING_ADDRESS_FLAG"='Y') 100 - access("PARTY_SITE"."PARTY_SITE_ID"="ACCT_SITE"."PARTY_SITE_ID") 101 - access("PARTY_SITE"."LOCATION_ID"="LOC"."LOCATION_ID"(+)) 103 - access("PARTY"."PARTY_ID"="CUST_ACCT"."PARTY_ID") 105 - access("OTD"."NOTD_ID"(+)=TO_NUMBER("CUST_ACCT"."ATTRIBUTE3")) Note: cpu costing is off 212 rows selected. SQL> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:53 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
ох ты, какая нечитаемая фигня, извиняюсь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:55 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:56 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.Да забила я... пошла как Красная шапочка, длинной дорогой, курсор и построчная вставка, так не тормозит :( заполнить "временную" табличку построчно (курсором) потом insert into xxx select * from "временная" если тормозит, то проблема не в селекте ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 15:04 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vladimir FilinЕлена Н. ...курсор и построчная вставка, так не тормозит :( С чем сталкивался сам: глюк одного HDD в рейде вызывал резкое снижение скорости записи выше некоторой пороговой нагрузки. Ниже этого порога глюк не проявлялся. В HP EVA. Без железного админа не поймать. На обоих серверах? Вряд ли, но я попробую. Задачу отдала, цифры бухи могут проверять, есть время и покопаться. Спасибо. А вообще, 1555 в наших системах частая ситуация на долгих запросах (час и более). Обычно помогает оптимизировать запрос, а тут вот выстрелило где не ждала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 15:07 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
stax..Елена Н.Да забила я... пошла как Красная шапочка, длинной дорогой, курсор и построчная вставка, так не тормозит :( заполнить "временную" табличку построчно (курсором) ..... stax Временная тоже тормозит. Мне временную и надо заполнить данными по сути, а потом уже выяснилось, что ни в обычную таблицу, ни в создаваемую я данные так же добавить не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 15:09 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.... курсор и построчная вставка, так не тормозит :( Если insert from select не прокачается, можно, как вариант PL/SQL Bulk SQL and Bulk Binding Limiting Bulk FETCH with LIMIT FORALL Statement Всё ж лучше построчной вставки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 15:24 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н. Временная тоже тормозит А что мониторинг IO показывает? Вы хотя бы на 60% загружаете дисковую подсистему? Или льется тонким ручейком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 15:29 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.stax..пропущено... заполнить "временную" табличку построчно (курсором) ..... stax Временная тоже тормозит. Мне временную и надо заполнить данными по сути, а потом уже выяснилось, что ни в обычную таблицу, ни в создаваемую я данные так же добавить не могу. я имел ввиду что временную заполнить с помощью pl/sql если есть время планы надо досравнить (можно и програмно) наверняка разные, в обоих мах(ид)=106, хотябы за счет | 0 | INSERT STATEMENT ... должно быть > 106 ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 15:40 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
stax.. если есть время планы надо досравнить (можно и програмно) наверняка разные, в обоих мах(ид)=106, хотябы за счет | 0 | INSERT STATEMENT ... должно быть > 106 ..... stax ой перегрелся/ступил на сегодня хватит ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 15:54 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.До кучи select count(*) from тратата 70 sec Если темпа не жалко, то загоните в with /*+ materialize */, а поверх этого insert /*+ append */ . Впечатление, что у вас проблема в redo/undo. Запросы бегают, изменения падают. Кстати, база-то в archivelog? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 16:18 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена, 1 Rows на выходе в плане .. передайте админам привет и заодно напомните чтобы собрали статистику ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 17:19 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Nobody1111LOB-ы используются? ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 04:52 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
И какое буквально сообщение об ошибке? Указывает ли оно на undo (rollback) сегмент с конкретным именем? Или там просто: ORA-01555: snapshot too old: rollback segment number with name "" too small Для полноты картины: какая версия Oracle? Поставлены ли патчсеты, патчи, если да, какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 05:15 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., Код: plsql 1. 2. 3. 4. 5. 6. Я так понимаю что вместо констант стоят переменные которые приходят извне, но это не очень хорошая практика для оптимизации т.к. эти поля ТОЧНО не попадут в индекс (если они участвуют в индексах). Еще не мешало бы проверить типы (поля ec.kod_pred, ec.otd, ec.y4, ec.dog - точно number, если нет то перевести переменные (проставленные константами) в нужный тип). Я бы попробовал как-то так (пока просто попробовать и посмотреть на изменение плана) ну и проставить типы, если надо, правильные: Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 11:09 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vladimir FilinЕсли insert from select не прокачается, можно, как вариант PL/SQL Bulk SQL and Bulk Binding Limiting Bulk FETCH with LIMIT FORALL Statement Всё ж лучше построчной вставки... Я тоже думала, но эти инструменты вроде как массовую обработку обеспечивают, а мне бы еще строки на условия проверять, какие-то добавлять, какие-то нет (то, что в запросе закомментировано, если их обеспечивать в самом запросе, то индексы отваливаются) Vladimir Filin1. Тест на зависимость проблемы от конкретного запроса. Пусть будет другой запрос, проверим IO CREATE TABLE ttt AS SELECT ROWNUM num_test1, ROWNUM num_test2, 'a' var_test1, 'a' var_test2 --и так далее для всех колонок блаблабла FROM DUAL CONNECT BY (ROWNUM <= [кол-во строк из моего запроса] ); create table e_lenka_temp2 as SELECT ROWNUM DOC_ID, 'a' DOC_NUMBER, SYSDATE DOC_DATE, 'a' CLASS, ROWNUM CUSTOMER_ID, ROWNUM CUSTOMER_SITE_USE_ID, 'a' CUSTOMER_NUMBER, 'a' CUSTOMER_ALT_NAME, 'a' GROUP1, 'a' GROUP2, 'a' GROUP3, SYSDATE PERIOD_BEG, SYSDATE PERIOD_END, ROWNUM DUE_DOC, ROWNUM IN_DOLG, ROWNUM AMOUNT_DUE, ROWNUM AMOUNT_OPL, ROWNUM OUT_DOLG FROM DUAL CONNECT BY (ROWNUM <= 25000 ); отрабатывает за 2 с. stax..заполнить "временную" табличку построчно (курсором) потом insert into xxx select * from "временная" если тормозит, то проблема не в селекте не томозит, проблема в селекте envКстати, база-то в archivelog? нет, сервера тестовые, там без надобности ora6011 Rows на выходе в плане .. передайте админам привет и заодно напомните чтобы собрали статистику ) говорит, что статистика каждый месяц собирается, но привет передала :) Nobody1111 LOB-ы используются? авторлобы проверю, но по-моему нет в запросе их точно нет, в таблицах из запроса вряд ли MaximaXXL Я так понимаю что вместо констант стоят переменные которые приходят извне, но это не очень хорошая практика типы данных и там, и там текстовые, number только здесь, ибо пофиг а индексы не отваливаются, видно по плану выполнения, у одной таблицы только нет индекса в плане, она малюсенькая, ей не нужно автор Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 14:39 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.Nobody1111 LOB-ы используются? авторлобы проверю, но по-моему нет в запросе их точно нет, в таблицах из запроса вряд ли вру, LOB есть в таблицах HZ_CUST_ACCT_SITES_ALL и HZ_LOCATIONS, это как-то влияет? я же эти поля в запрос не беру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 14:59 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н. Про PL/SQL Bulk SQL and Bulk Binding: ... а мне бы еще строки на условия проверять, какие-то добавлять, какие-то нет Тогда PL/SQL Bulk SQL должен хорошо подойти для Вашей задачи. Как вариант, решение в общем виде: - определить курсор c1 для селекта со всеми необходимыми данными для дальнейших проверок (и возможно, "заглушками" для новых производных данных) - определить коллекцию t1_t (type) по курсору - определить одну или несколько ссылочных коллекций ins1_t, ins2_t,...upd1_t, upd2_t...,del1_t, del2_t для реализации "какие-то добавлять, какие-то нет" - определить переменную limit_ для LIMITа строк, так что бы много, но ниже границы тормозов - OPEN c1; - LOOP в цикле пока не кончится курсор: - - FETCH c1 BULK COLLECT INTO t1_t LIMIT limit_; - - Бегаете по данным в t1_t: FOR i IN t1_t.FIRST .. t1_t.LAST LOOP, проверяете/изменяете/дополняете, пишете (ins1_t.EXTEND,...) ссылки на элементы t1_t в ins1_t,.... - - " FORALL Statements for Sparse Collections ": FORALL i IN VALUES OF ins1_t INSERT INTO тратата (бла1, бла2, бла3) VALUES (t1_t.бла1(i), t1_t.бла2(i), t1_t.бла3(i)); - - Если нужно, insert/update/delete FORALL-ами в другие таблицы - - Если нужно, контроль " Getting Number of Rows Affected by FORALL Statement " - - Если допустимо: COMMIT; - - t1_t.delete; - - ins1_t.delete, ... upd1_t.delete, ... del1_t.delete - EXIT WHEN c1%NOTFOUND; - END LOOP; - CLOSE c1; Дополненный список линков для PL/SQL Bulk SQL and Bulk Binding Limiting Bulk FETCH with LIMIT FORALL Statement FORALL FORALL Statements for Sparse Collections Getting Number of Rows Affected by FORALL Statement Примеры, если нужно 20402712 Елена Н.Ранее: До кучи select count(*) from тратата 70 sec create table e_lenka_temp2 as SELECT ... CONNECT BY (ROWNUM <= 25000 ); отрабатывает за 2 с. 25000 -- хм...почему так мало! Что бы получить 70 сек на count(*) нужно. Вчера на своём сервер 80 млн в табличку загнал, что бы получить 7 сек на count(*) CONNECT BY (ROWNUM <= 1E+6) А сколько данных в тратата? Partitioning имеется? 70 сек как бы обязывают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 15:50 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Vladimir Filin25000 -- хм...почему так мало! Что бы получить 70 сек на count(*) нужно. Вчера на своём сервер 80 млн в табличку загнал, что бы получить 7 сек на count(*) CONNECT BY (ROWNUM <= 1E+6) А сколько данных в тратата? Partitioning имеется? 70 сек как бы обязывают... Потому что "тратата" это по сути древняя запутанная вьюшка, из которой мне надо только маленькую часть данных. select * from тратата второй час идет и бестолку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 08:43 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.select * from тратата второй час идет и бестолку. select count(*) from тратата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 08:44 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Nobody1111И какое буквально сообщение об ошибке? Указывает ли оно на undo (rollback) сегмент с конкретным именем? Или там просто: ORA-01555: snapshot too old: rollback segment number with name "" too small Для полноты картины: какая версия Oracle? Поставлены ли патчсеты, патчи, если да, какие? ORA-01555: snapshot too old: rollback segment number 1 with name "_SYSSMU1$" too small Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 08:46 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.Елена Н.select * from тратата второй час идет и бестолку. select count(*) from тратата Елена Н.Ранее: До кучи select count(*) from тратата 70 sec Что-то тут не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 09:46 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
envЕлена Н.пропущено... select count(*) from тратата это по всем данным env Елена Н.Ранее: До кучи select count(*) from тратата 70 sec Что-то тут не так это только только по нужной части ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 12:24 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время. вот поверх него count(*) сколько идёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 12:50 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.+ сравнить планы селекта и инсерта в очередной раз сравнила, практически идентичныне те планы сравниваете... надо сравнивать реальные планы. И в конце концов хоть трассировку сделайте. Три страницы гаданий... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 13:06 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
envЕлена Н.Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время. вот поверх него count(*) сколько идёт? 70 sec ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 13:24 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., Код: plsql 1. 2. 3. 4. 5. 6. В 9.2.0.6 тоже не выполняется за приемлемое время и падает с 01555? Снимите уже трассировку своих select и insert. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 13:57 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1885928]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
176ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 494ms |

| 0 / 0 |
