powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос "умирает" при попытке вставить данные таблицу.
65 сообщений из 65, показаны все 3 страниц
Запрос "умирает" при попытке вставить данные таблицу.
    #39451815
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый, форум!

Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время. Но вот при попытке сделать INSERT INTO SELECT этот же запрос заканчивается ошибкой "ORA-01555: слишком старый снимок:...". Пробовала на другом сервере, постоянную и временную таблицу, результат тот же.

Что-то даже мысли нет, в чем может быть причина, в какую сторону копать?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451816
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть замечательный сайт google.com!
и вот что он говорит:
http://www.orafaq.com/wiki/ORA-01555
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451827
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приемлемое время - это сколько дней/часов?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451828
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.выполнимый за приемлемое время

Что под этим понимается? Получение всех строк или только первый фетч?


Елена Н.этот же запрос заканчивается
План при insert select совпадает с планом при просто select?

При наличии достаточного объёма TEMP и терпения, есть метод materialize'em all. Но лучше регулярно так не делать.
Если сложный тяжёлый запрос надо выполнять регулярно, то смотрите в сторону предматериализации его составляющих, матьеговью с query rewrite и подобные гадости механизмы.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
insert into ...
with "t_N" as (select /*+ materialize */ .....),
      "t_N-1" as (select /*+ materialize */ ..... from "t_N" any join some_table ...),
      ...
       t as (select /*+ materialize */ ..... from "t_0" any join last_little_dimension),
select t.* 
from t
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451842
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,
имхо
как минимум 4 варианта
1) выполнить вставку при минимальной активности, напр ночью
2) еще больше "дооптимизировать" запрос
3) в старих версиях можно было фиктивными сессиями препядствовать затиранию в роллбек кольце
4) менять железо

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451853
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

Если запрос сложный и долгий но результат все равно куда-то пишется, можно разбить на 3-4 быстрых и писать по частям (если это позволяет запрос).

Но пока очень мало вводных данных для принятия решения как лучше помочь
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451855
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLразбить на 3-4 быстрых
и получить 3-4 несогласованных между собой набора данных
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451859
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

serialize, as of timestamp и прочее
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451861
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы знаете информационную систему ТС и уверены, что эти транзакции получится сериализовать?
По одной из нескольких причин запрос падает с ora-01555 и в качестве решения вы даете совет "as of timestamp". Отлично.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451871
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

Так мы и запроса не знаем.
Может там декартово произведение миллиардных таблиц.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451876
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВадиманПо одной из нескольких причин запрос падает с ora-01555

Для случая - nested loop по FTA для большой таблицы в подзапросе - запросто можно словить ora-01555, при этом материализовать консистентные предварительные данные вполне себе можно без проблем.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451883
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но мы же не знаем причину. Вдруг там просто не хватает undo.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451890
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

Мы вообще мало что знаем ... посему и фраза "Но пока очень мало вводных данных для принятия решения как лучше помочь"

Может там 10 union all
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451943
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

Мой хрустальный шар в майский снег плохо работает. В отделе телепатов все в отпусках на праздники.
Думаю, у тебя примерно также.

ТС проснётся и опишет подробности, если вспомнит вообще, что писала сюда.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452140
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ого, сколько...
Так,
1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)
2. авторЧто под этим понимается? Получение всех строк или только первый фетч?все данные
3. авторПлан при insert select совпадает с планом при просто select?сейчас еще раз специально уточнила, одинаковый
4. автори вот что он говорит:
http://www.orafaq.com/wiki/ORA-01555
не уверена, конечно, что я точно понимаю механизм этой ошибки, не приходилось так глубоко копать, но сервера, а которых пробовала, тестовые, если изменения там и есть, то кратковременные, а проблема постоянная, не первый раз уже в нее утыкаюсь с этим же запросом, да каждый раз откладываю решение на потом
5. авторвыполнить вставку при минимальной активности, напр ночью
запуск процесса на ночь не помогает
6. авторМожет там 10 union all
всего 5 :)
7. авторМожет там декартово произведение миллиардных таблиц
таблицы большие, но в общем-то никаких сверхестественных механизмов в нем нет, большие таблицы + справочники
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452148
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)

Код: plsql
1.
2.
CREATE TABLE temp AS SELECT ...  
INSERT INTO src SELECT * FROM temp 



И можно не разбираться в чем именно там причина ORA - 01555
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452172
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora601Елена Н.1. пропущено...
минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)

Код: plsql
1.
2.
CREATE TABLE temp AS SELECT ...  
INSERT INTO src SELECT * FROM temp 




И можно не разбираться в чем именно там причина ORA - 01555


а какая разница, insert или create
імхо слетит также

проблема видать в другом

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452182
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.Ого, сколько...
Так,
1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)
5. авторвыполнить вставку при минимальной активности, напр ночью
запуск процесса на ночь не помогает


5-7 минут ето очень мало, для 1555

про ночь тоже странно

попробовать выполнить любой запрос с фулл скан таблицы перед Вашим,
мож слетать из-за отложеноой очистки блоков (или как оно там правильно называется)

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452463
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LOB-ы используются?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452469
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452702
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторCREATE TABLE temp AS SELECT ...
INSERT INTO src SELECT * FROM temp
это тоже не работает

авторLOB-ы используются?
лобы проверю, но по-моему нет

автормож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555?
в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро
а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555

вот что такого то в этой вставке, что она так на скорость запроса влияет?

p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452895
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро
а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555

вот что такого то в этой вставке, что она так на скорость запроса влияет?

p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то

паралельно ничего не вставляется?
мож банально висит из-за пк/фк

+ сравнить планы селекта и инсерта

......
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452912
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

в догонку
слетает и create table as
большая вероятность того что планы select и iserta существенно разнятся
напр из-за first/all rows

......
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452937
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

добавьте в запрос row_number и поверх запустите count(*) - тоже минуты?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452939
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,
когда девушка говорит про 2-7 минут надо обязательно уточнять получает ли она все данные или только первый результат. учитывая уровень знаний вполне вероятно что получение всех данных может занять и неделю, оттуда и 1555 ноги растут.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452941
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintstax..,
когда девушка говорит про 2-7 минут надо обязательно уточнять получает ли она все данные или только первый результат. учитывая уровень знаний вполне вероятно что получение всех данных может занять и неделю, оттуда и 1555 ноги растут.
имхо, вы явно недооцениваете девушку

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452943
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vint, так уже спрашивали
Елена Н.envЧто под этим понимается? Получение всех строк или только первый фетч?все данные
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452948
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,env
вы видели запрос чтобы это утверждать?)
учитывая показанный в этой теме уровень знаний вполне вероятно что девушка считает получение первых строк на экране гуя - как получение результата запроса. спрашивать надо так:
Код: plsql
1.
select count(1) from (select исходный запрос)


выполняется за....? все остальное домыслы.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452960
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintstax..,env
вы видели запрос чтобы это утверждать?)
учитывая показанный в этой теме уровень знаний вполне вероятно что девушка считает получение первых строк на экране гуя - как получение результата запроса. спрашивать надо так:
Код: plsql
1.
select count(1) from (select исходный запрос)


выполняется за....? все остальное домыслы.

ну й посоветовали

такой запрос может иметь совсем другой план, напр все из индекса

Код: 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.
  1* select * from emp where deptno=10
SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7782 CLARK      MANAGER         7839 09.06.81       2450                    10
      7839 KING       PRESIDENT            17.11.81       5000                    10
      7934 MILLER     CLERK           7782 23.01.82       1300                    10


Execution Plan
----------------------------------------------------------
Plan hash value: 1748944510

--------------------------------------------------------------------------------------------
| Id  | Operation                   | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |              |     3 |   111 |     1   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP          |     3 |   111 |     1   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | I$EMP$DEPTNO |     3 |       |     1   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("DEPTNO"=10)

SQL> select count(1) from emp where deptno=10;

  COUNT(1)
----------
         3


Execution Plan
----------------------------------------------------------
Plan hash value: 114788762

----------------------------------------------------------------------------------
| Id  | Operation         | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |              |     1 |     3 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE   |              |     1 |     3 |            |          |
|*  2 |   INDEX RANGE SCAN| I$EMP$DEPTNO |     3 |     9 |     1   (0)| 00:00:01 |
----------------------------------------------------------------------------------


я в count добавляю неиндексированные поля из таблиц


....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452968
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,
уверен? она же явно сказала что у нее 5 юнионов) и в твоем примере, если уж придираться, должен быть запрос select * from ( select * from emp where deptno=10) который в сложных случаях не выкинет информацию и не оптимизируется ораклом.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452978
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
SQL> select ename from emp where deptno=10
  2  union all
  3  select dname from dept where deptno=10
  4  /

ENAME
--------------
CLARK
KING
MILLER
ACCOUNTING


Execution Plan
----------------------------------------------------------
Plan hash value: 2052919003

---------------------------------------------------------------------------------------------
| Id  | Operation                    | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |              |     4 |    40 |     4  (75)| 00:00:01 |
|   1 |  UNION-ALL                   |              |       |       |            |          |
|   2 |   TABLE ACCESS BY INDEX ROWID| EMP          |     3 |    27 |     1   (0)| 00:00:01 |
|*  3 |    INDEX RANGE SCAN          | I$EMP$DEPTNO |     3 |       |     1   (0)| 00:00:01 |
|*  4 |   TABLE ACCESS FULL          | DEPT         |     1 |    13 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - access("DEPTNO"=10)
   4 - filter("DEPTNO"=10)

SQL> select count(*) from (
  2  select ename from emp where deptno=10
  3  union all
  4  select dname from dept where deptno=10
  5  )
  6  /

  COUNT(*)
----------
         4


Execution Plan
----------------------------------------------------------
Plan hash value: 3698331212

-------------------------------------------------------------------------------------
| Id  | Operation            | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |              |     1 |       |     4   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE      |              |     1 |       |            |          |
|   2 |   VIEW               |              |     4 |       |     4   (0)| 00:00:01 |
|   3 |    UNION-ALL         |              |       |       |            |          |
|*  4 |     INDEX RANGE SCAN | I$EMP$DEPTNO |     3 |     9 |     1   (0)| 00:00:01 |
|*  5 |     TABLE ACCESS FULL| DEPT         |     1 |     3 |     3   (0)| 00:00:01 |
-------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   4 - access("DEPTNO"=10)
   5 - filter("DEPTNO"=10)

SQL>



.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452987
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,
опять гадания на кофейной гуще. я думаю простенький запрос бы у автора не работал 2-7 минут и дал совет конкретно исходя из слов о юнионах и времени запроса, а ты пытаешься доказать что-то на основе сферического коня в вакууме. зачем?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453003
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintstax..,
опять гадания на кофейной гуще. я думаю простенький запрос бы у автора не работал 2-7 минут и дал совет конкретно исходя из слов о юнионах и времени запроса, а ты пытаешься доказать что-то на основе сферического коня в вакууме. зачем?
я ничего не доказываю, а считаю что у select count(1) from (...), для хорошо проиндексированной базы план может поменяется, а может и нет

из моей практики, для моей базы, намного чаще менялся

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453146
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторпаралельно ничего не вставляется?
мож банально висит из-за пк/фк

ничего не вставляется, обычный большой селект
вот последняя попытка:

select блаблабла from тратата
4 мин

далее

create table TTT as
select блаблабла from тратата
11-я минута идет и надежды нет

+ сравнить планы селекта и инсерта
в очередной раз сравнила, практически идентичны

Да забила я... пошла как Красная шапочка, длинной дорогой, курсор и построчная вставка, так не тормозит :(
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453154
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.11-я минута идет и надежды нет
события ожидания то какие?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453156
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
До кучи
select count(*) from тратата

70 sec
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453158
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторсобытия ожидания то какие?
да отменила, опять будет 1555
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453176
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н. ...курсор и построчная вставка, так не тормозит :(

Обычно "пулемёт" догоняет автора....

Сам бы решал так:
1. Тест на зависимость проблемы от конкретного запроса. Пусть будет другой запрос, проверим IO
Код: plsql
1.
2.
3.
4.
CREATE TABLE ttt AS
 SELECT     ROWNUM num_test1, ROWNUM num_test2, 'a' var_test1, 'a' var_test2 --и так далее для всех колонок блаблабла
       FROM DUAL
 CONNECT BY (ROWNUM <=  [кол-во строк из моего запроса] );



2. Если в п.1 тоже долго, то аналогично п.1 вставку в готовую таблицу в другом tablespace
3. Если в п.2 тоже долго, то вставку в таблицу в другом tablespace в другой дисковой группе. Мониторинг IO администратором железа.

С чем сталкивался сам:
глюк одного HDD в рейде вызывал резкое снижение скорости записи выше некоторой пороговой нагрузки. Ниже этого порога глюк не проявлялся. В HP EVA. Без железного админа не поймать.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453186
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сравнение планов

автор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>
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453189
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ох ты, какая нечитаемая фигня, извиняюсь :)
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453191
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
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",'&#9612;ыхъЄЁю¤эхЁуш ',1,'&#9573;хяыю',2,NULL)=1 AND
              ("CUST_ACCT"."ATTRIBUTE_CATEGORY"='&#9573;хяыю' OR "CUST_ACCT"."ATTRIBUTE_CATEGORY"='&#9612;ыхъЄЁю¤эхЁуш ') 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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9612;ыхъЄЁю¤эхЁуш ',1,'&#9573;хяыю',2,NULL)=1 AND
              ("CUST_ACCT"."ATTRIBUTE_CATEGORY"='&#9573;хяыю' OR "CUST_ACCT"."ATTRIBUTE_CATEGORY"='&#9612;ыхъЄЁю¤эхЁуш ') 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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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",'&#9580;ЄЁшЎ. юяырЄр
              ёры№фю',"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>
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453198
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.Да забила я... пошла как Красная шапочка, длинной дорогой, курсор и построчная вставка, так не тормозит :(
заполнить "временную" табличку построчно (курсором)
потом
insert into xxx select * from "временная"
если тормозит, то проблема не в селекте

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453205
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir FilinЕлена Н. ...курсор и построчная вставка, так не тормозит :(

С чем сталкивался сам:
глюк одного HDD в рейде вызывал резкое снижение скорости записи выше некоторой пороговой нагрузки. Ниже этого порога глюк не проявлялся. В HP EVA. Без железного админа не поймать.

На обоих серверах? Вряд ли, но я попробую. Задачу отдала, цифры бухи могут проверять, есть время и покопаться. Спасибо.
А вообще, 1555 в наших системах частая ситуация на долгих запросах (час и более). Обычно помогает оптимизировать запрос, а тут вот выстрелило где не ждала.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453207
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stax..Елена Н.Да забила я... пошла как Красная шапочка, длинной дорогой, курсор и построчная вставка, так не тормозит :(
заполнить "временную" табличку построчно (курсором)
.....
stax

Временная тоже тормозит. Мне временную и надо заполнить данными по сути, а потом уже выяснилось, что ни в обычную таблицу, ни в создаваемую я данные так же добавить не могу.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453222
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.... курсор и построчная вставка, так не тормозит :(
Если insert from select не прокачается, можно, как вариант PL/SQL Bulk SQL and Bulk Binding
Limiting Bulk FETCH with LIMIT

FORALL Statement
Всё ж лучше построчной вставки...
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453229
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н. Временная тоже тормозит
А что мониторинг IO показывает? Вы хотя бы на 60% загружаете дисковую подсистему? Или льется тонким ручейком?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453240
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.stax..пропущено...

заполнить "временную" табличку построчно (курсором)
.....
stax

Временная тоже тормозит. Мне временную и надо заполнить данными по сути, а потом уже выяснилось, что ни в обычную таблицу, ни в создаваемую я данные так же добавить не могу.
я имел ввиду что временную заполнить с помощью pl/sql

если есть время планы надо досравнить (можно и програмно)
наверняка разные, в обоих мах(ид)=106, хотябы за счет
| 0 | INSERT STATEMENT ...
должно быть > 106

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453253
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..
если есть время планы надо досравнить (можно и програмно)
наверняка разные, в обоих мах(ид)=106, хотябы за счет
| 0 | INSERT STATEMENT ...
должно быть > 106

.....
stax
ой
перегрелся/ступил
на сегодня хватит

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453272
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.До кучи
select count(*) from тратата

70 sec

Если темпа не жалко, то загоните в with /*+ materialize */, а поверх этого insert /*+ append */ .

Впечатление, что у вас проблема в redo/undo. Запросы бегают, изменения падают.
Кстати, база-то в archivelog?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453332
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена,

1 Rows на выходе в плане .. передайте админам привет и заодно напомните чтобы собрали статистику )
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453530
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nobody1111LOB-ы используются?
?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453534
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И какое буквально сообщение об ошибке? Указывает ли оно на undo (rollback) сегмент с конкретным именем? Или там просто:

ORA-01555: snapshot too old: rollback segment number with name "" too small

Для полноты картины: какая версия Oracle? Поставлены ли патчсеты, патчи, если да, какие?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453647
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

Код: plsql
1.
2.
3.
4.
5.
6.
............................
 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)
............................



Я так понимаю что вместо констант стоят переменные которые приходят извне, но это не очень хорошая практика для оптимизации т.к. эти поля ТОЧНО не попадут в индекс (если они участвуют в индексах). Еще не мешало бы проверить типы (поля ec.kod_pred, ec.otd, ec.y4, ec.dog - точно number, если нет то перевести переменные (проставленные константами) в нужный тип). Я бы попробовал как-то так (пока просто попробовать и посмотреть на изменение плана) ну и проставить типы, если надо, правильные:
Код: plsql
1.
2.
3.
4.
5.
6.
........................
31 and (5 = -1 or ec.kod_pred = 5)
32 and (7 is null or ec.otd = 7)
33 and (75 is null or ec.y4 = 75)
34 and (null is null or ec.dog = null)
.......................
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453848
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
|  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 |
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453873
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Елена Н.Nobody1111 LOB-ы используются?
авторлобы проверю, но по-моему нет
в запросе их точно нет, в таблицах из запроса вряд ли
вру, LOB есть в таблицах HZ_CUST_ACCT_SITES_ALL и HZ_LOCATIONS, это как-то влияет? я же эти поля в запрос не беру.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39453921
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н. Про 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 сек как бы обязывают...
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454315
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Filin25000 -- хм...почему так мало! Что бы получить 70 сек на count(*) нужно. Вчера на своём сервер 80 млн в табличку загнал, что бы получить 7 сек на count(*)
CONNECT BY (ROWNUM <= 1E+6)

А сколько данных в тратата? Partitioning имеется? 70 сек как бы обязывают...

Потому что "тратата" это по сути древняя запутанная вьюшка, из которой мне надо только маленькую часть данных.
select * from тратата второй час идет и бестолку.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454317
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Елена Н.select * from тратата второй час идет и бестолку.
select count(*) from тратата
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454319
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454360
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.Елена Н.select * from тратата второй час идет и бестолку.
select count(*) from тратата

Елена Н.Ранее: До кучи
select count(*) from тратата
70 sec

Что-то тут не так
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454535
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
envЕлена Н.пропущено...

select count(*) from тратата
это по всем данным
env
Елена Н.Ранее: До кучи
select count(*) from тратата
70 sec

Что-то тут не так
это только только по нужной части
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454557
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время.

вот поверх него count(*) сколько идёт?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454577
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Елена Н.+ сравнить планы селекта и инсерта
в очередной раз сравнила, практически идентичныне те планы сравниваете... надо сравнивать реальные планы. И в конце концов хоть трассировку сделайте. Три страницы гаданий...
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454599
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
envЕлена Н.Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время.

вот поверх него count(*) сколько идёт?

70 sec
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39454637
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

Код: plsql
1.
2.
3.
4.
5.
6.
insert /*+ append */ into ...  
with t as
       (select /*+ materialize */
        from "Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время"
       )
select * from t



В 9.2.0.6 тоже не выполняется за приемлемое время и падает с 01555?

Снимите уже трассировку своих select и insert.
...
Рейтинг: 0 / 0
65 сообщений из 65, показаны все 3 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос "умирает" при попытке вставить данные таблицу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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