powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Параметризация -> Материализация -> Оптимазация
6 сообщений из 6, страница 1 из 1
Параметризация -> Материализация -> Оптимазация
    #39615097
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа !

Имею запрос (ниже), его архитектура (не менять)

PARAMETER - получение параметров из внешнего источника
PARAMETER_LIST - преобразования параметров списка в табличную форму
Базовый запрос - ADBUS.V_CFA_STATUSOFCONTR_FACT со связью с параметрической таблицей
Использую hint для комбинированных индексов Index_Combine

Вариант 1
PARAMETER -> Преобразование строк посредством CONNECT BY -> Materialize -> Базовый запрос => План оптимазции 1

Вариант 2
PARAMETER -> Преобразование коллекции посредством table() -> Materialize -> Базовый запрос => План оптимазции 2


План оптимазции 1 - быстрый использует доступ типа INDEX RANGE SCAN в обоих индексах
План оптимазции 2 - менее производительный использует доступ типа INDEX FULL SCAN в ОДНОМ из индексов

Почему применение приема коллекций table(), который реализован ДО !!!!!!!! материализации
привело к такому изменению плана
Предполагаю, что мог потерять немного времени (1-2 сек) на разборе коллекции, но все должно было
отфетчится во временную таблицу и базовый план остался бы без изменений

Под базовым планом понимаю это
....
from ADBUS.V_CFA_STATUSOFCONTR_FACT A
inner join PARAMETER_LIST B
on ( Trunc(A.DATE_FININSURANCE) between B.DBEG and B.DEND
and B.KEYS is Null
and B.TYPE in(0,1)
and B.KIND in ('DAY')
or B.LIST=A.ID_CONTRACT_SAP
and Not B.KEYS is Null
and B.TYPE in(0,1)
and B.KIND in ('ONE')
)
.....

Подскажите пожалуйста как исправить (т.е. коллекция + Index_RS) - заранее благодарен !

Запрос

Код: 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.
     with PARAMETER as (select /*+ Materialize */
                                To_Date('01-02-2018','DD-MM-YYYY') DBEG,
                                To_Date('28-02-2018','DD-MM-YYYY') DEND,
                                0 TYPE,
                                2 SHOW,
                                --'CT446757832333,CTR55663745550,GH7894344515000' LIST,
                                Null LIST,
                                Mdsys.SdorIdTab('CT0040','CT0041','CT0042','CT0043','CT0047','CT0049','CT0052','CT0054','CT2011','CT2013','CT2031','CT2033','CT2083','CT2111','CT2113','CT2131','CT2133','CT2161','CT2163','CT2181','CT2183') ATM,
                                Mdsys.SdorIdTab('CT0044','CT0045','CT0048','CT0053','CT0065','CT0066','CT2021','CT2071','CT2073','CT2121','CT2123','CT2173')                                                                                  POS,
                                Mdsys.SdorIdTab('CT0057','CTX3')                                                                                                                                                                              RKO,

                                'CT0040,CT0041,CT0042,CT0043,CT0047,CT0049,CT0052,CT0054,CT2011,CT2013,CT2031,CT2033,CT2083,CT2111,CT2113,CT2131,CT2133,CT2161,CT2163,CT2181,CT2183' ATM1,
                                'CT0044,CT0045,CT0048,CT0053,CT0065,CT0066,CT2021,CT2071,CT2073,CT2121,CT2123,CT2173'                                                                POS1,
                                'CT0057,CTX3'                                                                                                                                        RKO1

                           from DUAL
                        ),
     PARAMETER_LIST(LIST,KIND,DBEG,DEND,TYPE,SHOW,KEYS) as
                        (select /*+ Materialize */
                                *
                           from (
                                 select Nvl( RegExp_Substr(LIST,'[^,]+',1,LEVEL),'NOT_SC'   ) LIST,
                                        Nvl2(RegExp_Substr(LIST,'[^,]+',1,LEVEL),'ONE','DAY') KIND,
                                        DBEG,
                                        DEND,
                                        TYPE,
                                        SHOW,
                                        LIST KEYS
                                   from PARAMETER
                                connect by LEVEL<=RegExp_Count(LIST,'','')+2
/* 
--Вариант 1
                                 union all
                                 select Nvl(RegExp_Substr(ATM1,'[^,]+',1,LEVEL),'NOT_SC') LIST,
                                        'ATM' KIND,
                                        DBEG,
                                        DEND,
                                        TYPE,
                                        SHOW,
                                        LIST KEYS
                                   from PARAMETER
                                connect by LEVEL<=RegExp_Count(ATM1,'','')+1
                                  union all
                                 select Nvl(RegExp_Substr(POS1,'[^,]+',1,LEVEL),'NOT_SC') LIST,
                                        'POS' KIND,
                                        DBEG,
                                        DEND,
                                        TYPE,
                                        SHOW,
                                        LIST KEYS
                                   from PARAMETER
                                connect by LEVEL<=RegExp_Count(POS1,'','')+1
                                  union all
                                 select Nvl(RegExp_Substr(RKO1,'[^,]+',1,LEVEL),'NOT_SC') LIST,
                                        'RKO' KIND,
                                        DBEG,
                                        DEND,
                                        TYPE,
                                        SHOW,
                                        LIST KEYS
                                   from PARAMETER
                                connect by LEVEL<=RegExp_Count(RKO1,'','')+1
*/

--Вариант 2
                                  union all
                                 select A.*,'ATM' KIND,To_Date('01-02-2018','DD-MM-YYYY') DBEG,To_Date('28-02-2018','DD-MM-YYYY') DEND,0,2,Null
                                   from table(select ATM from PARAMETER) A
                                  union all
                                 select A.*,'POS' KIND,To_Date('01-02-2018','DD-MM-YYYY') DBEG,To_Date('28-02-2018','DD-MM-YYYY') DEND,0,2,Null
                                   from table(select POS from PARAMETER) A
                                  union all
                                 select A.*,'RKO' KIND,To_Date('01-02-2018','DD-MM-YYYY') DBEG,To_Date('28-02-2018','DD-MM-YYYY') DEND,0,2,Null
                                   from table(select RKO from PARAMETER) A
                                )
                        )
select /*+
          Index_Combine(A I03_CFA_STATUS_FACT_ID_CONTR I02_CFA_STATUS_FACT_DATE_FIN)
       */
       A.ID_CONTRACT_RATANET,
       A.DATE_REQUEST,
       B.SHOW
  from ADBUS.V_CFA_STATUSOFCONTR_FACT A
 inner join PARAMETER_LIST B
    on (    Trunc(A.DATE_FININSURANCE) between B.DBEG and B.DEND
        and     B.KEYS is Null
        and     B.TYPE in(0,1)
        and     B.KIND in ('DAY')
         or     B.LIST=A.ID_CONTRACT_SAP
        and Not B.KEYS is Null
        and     B.TYPE in(0,1)
        and     B.KIND in ('ONE')
       )





План оптимизации 1

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Plan hash value: 1915423001
 
------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                               | Name                         | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                        |                              |     1 |    25 | 50710   (1)| 00:00:04 |
|   1 |  VIEW                                   | SV_AA00                      |     1 |    25 | 50710   (1)| 00:00:04 |
|   2 |   TEMP TABLE TRANSFORMATION             |                              |       |       |            |          |
|   3 |    LOAD AS SELECT                       | SYS_TEMP_0FD9D75ED_FE49FB4E  |       |       |            |          |
|   4 |     VIEW                                |                              |     4 |   412 |     8   (0)| 00:00:01 |
|   5 |      UNION-ALL                          |                              |       |       |            |          |
|*  6 |       CONNECT BY WITHOUT FILTERING      |                              |       |       |            |          |
|   7 |        FAST DUAL                        |                              |     1 |       |     2   (0)| 00:00:01 |
|*  8 |       CONNECT BY WITHOUT FILTERING      |                              |       |       |            |          |
|   9 |        FAST DUAL                        |                              |     1 |       |     2   (0)| 00:00:01 |
|* 10 |       CONNECT BY WITHOUT FILTERING      |                              |       |       |            |          |
|  11 |        FAST DUAL                        |                              |     1 |       |     2   (0)| 00:00:01 |
|* 12 |       CONNECT BY WITHOUT FILTERING      |                              |       |       |            |          |
|  13 |        FAST DUAL                        |                              |     1 |       |     2   (0)| 00:00:01 |
|* 14 |    FILTER                               |                              |       |       |            |          |
|  15 |     NESTED LOOPS                        |                              |     1 |   141 | 50702   (1)| 00:00:04 |
|* 16 |      VIEW                               |                              |     4 |   412 |     2   (0)| 00:00:01 |
|  17 |       TABLE ACCESS FULL                 | SYS_TEMP_0FD9D75ED_FE49FB4E  |     4 |   412 |     2   (0)| 00:00:01 |
|* 18 |      TABLE ACCESS BY INDEX ROWID BATCHED| T_CFA_STATUSOFCONTR_FACT     |     1 |    38 | 50702   (1)| 00:00:04 |
|  19 |       BITMAP CONVERSION TO ROWIDS       |                              |       |       |            |          |
|  20 |        BITMAP OR                        |                              |       |       |            |          |
|  21 |         BITMAP CONVERSION FROM ROWIDS   |                              |       |       |            |          |
|  22 |          SORT ORDER BY                  |                              |       |       |            |          |
|* 23 |           INDEX RANGE SCAN              | I02_CFA_STATUS_FACT_DATE_FIN |       |       |   735   (1)| 00:00:01 |
|  24 |         BITMAP CONVERSION FROM ROWIDS   |                              |       |       |            |          |
|* 25 |          INDEX RANGE SCAN               | I03_CFA_STATUS_FACT_ID_CONTR |       |       |     2   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   6 - filter(LEVEL<=NULL)
   8 - filter(LEVEL<=NULL)
  10 - filter(LEVEL<=NULL)
  12 - filter(LEVEL<=NULL)
  14 - filter(SYS_AUDIT(1,'ADBUS','V_CFA_STATUSOFCONTR_FACT','S_CFA_STATUSOFCONTR_FACT',3) IS NULL)
  16 - filter("B"."TYPE"=0)
  18 - filter("B"."KEYS" IS NULL AND "B"."KIND"='DAY' AND 
              "B"."DBEG"<=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")) AND 
              "B"."DEND">=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")) OR "B"."LIST"="ID_CONTRACT_SAP" AND "B"."KIND"='ONE' 
              AND "ID_CONTRACT_SAP" IS NOT NULL AND "B"."KEYS" IS NOT NULL)
  23 - access("B"."DBEG"<=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")) AND 
              "B"."DEND">=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")))
  25 - access("B"."LIST"="ID_CONTRACT_SAP")
       filter("ID_CONTRACT_SAP" IS NOT NULL)




План оптимизации 2

Код: 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.
Plan hash value: 2244502267
 
-----------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                  | Name                         | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                           |                              |   924M|    21G|       |   562K (10)| 00:00:44 |
|   1 |  VIEW                                      | SV_AA00                      |   924M|    21G|       |   562K (10)| 00:00:44 |
|   2 |   TEMP TABLE TRANSFORMATION                |                              |       |       |       |            |          |
|   3 |    LOAD AS SELECT                          | SYS_TEMP_0FD9D75C6_FE49FB4E  |       |       |       |            |          |
|   4 |     VIEW                                   |                              | 49081 |  2013K|       |   116   (0)| 00:00:01 |
|   5 |      UNION-ALL                             |                              |       |       |       |            |          |
|*  6 |       CONNECT BY WITHOUT FILTERING         |                              |       |       |       |            |          |
|   7 |        FAST DUAL                           |                              |     1 |       |       |     2   (0)| 00:00:01 |
|   8 |       COLLECTION ITERATOR CONSTRUCTOR FETCH|                              | 16360 | 32720 |       |    38   (0)| 00:00:01 |
|   9 |        FAST DUAL                           |                              |     1 |       |       |     2   (0)| 00:00:01 |
|  10 |       COLLECTION ITERATOR CONSTRUCTOR FETCH|                              | 16360 | 32720 |       |    38   (0)| 00:00:01 |
|  11 |        FAST DUAL                           |                              |     1 |       |       |     2   (0)| 00:00:01 |
|  12 |       COLLECTION ITERATOR CONSTRUCTOR FETCH|                              | 16360 | 32720 |       |    38   (0)| 00:00:01 |
|  13 |        FAST DUAL                           |                              |     1 |       |       |     2   (0)| 00:00:01 |
|* 14 |    FILTER                                  |                              |       |       |       |            |          |
|* 15 |     FILTER                                 |                              |       |       |       |            |          |
|  16 |      CONCATENATION                         |                              |       |       |       |            |          |
|  17 |       NESTED LOOPS                         |                              | 43958 |  3434K|       |   147K  (1)| 00:00:12 |
|  18 |        NESTED LOOPS                        |                              | 49081 |  3434K|       |   147K  (1)| 00:00:12 |
|* 19 |         VIEW                               |                              | 49081 |  2013K|       |    52   (0)| 00:00:01 |
|  20 |          TABLE ACCESS FULL                 | SYS_TEMP_0FD9D75C6_FE49FB4E  | 49081 |  2013K|       |    52   (0)| 00:00:01 |
|* 21 |         INDEX RANGE SCAN                   | I03_CFA_STATUS_FACT_ID_CONTR |     1 |       |       |     2   (0)| 00:00:01 |
|  22 |        TABLE ACCESS BY INDEX ROWID         | T_CFA_STATUSOFCONTR_FACT     |     1 |    38 |       |     3   (0)| 00:00:01 |
|  23 |       MERGE JOIN                           |                              |   923M|    68G|       |   414K (13)| 00:00:33 |
|  24 |        SORT JOIN                           |                              |  7530K|   272M|       |   363K  (1)| 00:00:29 |
|  25 |         TABLE ACCESS BY INDEX ROWID BATCHED| T_CFA_STATUSOFCONTR_FACT     |  7530K|   272M|       |   363K  (1)| 00:00:29 |
|  26 |          INDEX FULL SCAN                   | I02_CFA_STATUS_FACT_DATE_FIN |  7581K|       |       | 14673   (1)| 00:00:02 |
|* 27 |        FILTER                              |                              |       |       |       |            |          |
|* 28 |         SORT JOIN                          |                              | 49081 |  2013K|  5808K|   399   (1)| 00:00:01 |
|* 29 |          VIEW                              |                              | 49081 |  2013K|       |    52   (0)| 00:00:01 |
|  30 |           TABLE ACCESS FULL                | SYS_TEMP_0FD9D75C6_FE49FB4E  | 49081 |  2013K|       |    52   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   6 - filter(LEVEL<=NULL)
  14 - filter(SYS_AUDIT(1,'ADBUS','V_CFA_STATUSOFCONTR_FACT','S_CFA_STATUSOFCONTR_FACT',3) IS NULL)
  15 - filter(SYS_AUDIT(1,'ADBUS','V_CFA_STATUSOFCONTR_FACT','S_CFA_STATUSOFCONTR_FACT',3) IS NULL)
  19 - filter("B"."KIND"='ONE' AND "B"."KEYS" IS NOT NULL AND "B"."TYPE"=0)
  21 - access("B"."LIST"="ID_CONTRACT_SAP")
       filter("ID_CONTRACT_SAP" IS NOT NULL)
  27 - filter("B"."DEND">=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")) AND (LNNVL("B"."LIST"="ID_CONTRACT_SAP") OR 
              LNNVL("B"."KIND"='ONE') OR LNNVL("ID_CONTRACT_SAP" IS NOT NULL) OR LNNVL("B"."KEYS" IS NOT NULL)))
  28 - access(INTERNAL_FUNCTION("B"."DBEG")<=INTERNAL_FUNCTION(TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE"))))
       filter(INTERNAL_FUNCTION("B"."DBEG")<=INTERNAL_FUNCTION(TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE"))))
  29 - filter("B"."KEYS" IS NULL AND "B"."KIND"='DAY' AND "B"."TYPE"=0)
 
Note
-----
   - dynamic statistics used: dynamic sampling (level=2)
   - 1 Sql Plan Directive used for this statement
...
Рейтинг: 0 / 0
Параметризация -> Материализация -> Оптимазация
    #39615532
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Оракл считает что кардинальность коллекции(ций) 16360 (видимо у твоей базюльки блок 16K) тогда как она 1.
Подскажи правильное число с помощью opt_estimate.

Кроме того имеет смысл избавиться от этого
HOME_X
Код: plsql
1.
2.
3.
4.
Note
-----
   - dynamic statistics used: dynamic sampling (level=2)
   - 1 Sql Plan Directive used for this statement
...
Рейтинг: 0 / 0
Параметризация -> Материализация -> Оптимазация
    #39615632
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopHOME_X,

Оракл считает что кардинальность коллекции(ций) 16360 (видимо у твоей базюльки блок 16K) тогда как она 1.
Подскажи правильное число с помощью opt_estimate.

Кроме того имеет смысл избавиться от этого
HOME_X
Код: plsql
1.
2.
3.
4.
Note
-----
   - dynamic statistics used: dynamic sampling (level=2)
   - 1 Sql Plan Directive used for this statement



Принято - уточняю кардинальность коллекции

select /*+ cardinality(A 1) */
A.*,'ATM' KIND,To_Date('01-02-2018','DD-MM-YYYY') DBEG,To_Date('28-02-2018','DD-MM-YYYY') DEND,0,2,Null
from table(select ATM from PARAMETER) A

!!!!! ПАМАГЛО !!!!!

Спасибо за подсказку
Уточните пожалуйста на примере Ваш метод "...помощью opt_estimate...."
...
Рейтинг: 0 / 0
Параметризация -> Материализация -> Оптимазация
    #39615645
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Я верю, что ты сам разберешься
https://blog.pythian.com/oracles-opt_estimate-hint-usage-guide/
...
Рейтинг: 0 / 0
Параметризация -> Материализация -> Оптимазация
    #39615694
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

Принято- выполнено - спасибо !
Код: 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.
      with PARAMETER as (select /*+ Materialize */
                                To_Date('01-02-2018','DD-MM-YYYY') DBEG,
                                To_Date('28-02-2018','DD-MM-YYYY') DEND,
                                0 TYPE,
                                2 SHOW,
                                --'94378325000,94376374000,94375515000' LIST,
                                Null LIST,
                                Mdsys.SdorIdTab('CT0040','CT0041','CT0042','CT0043','CT0047','CT0049','CT0052','CT0054','CT2011','CT2013','CT2031','CT2033','CT2083','CT2111','CT2113','CT2131','CT2133','CT2161','CT2163','CT2181','CT2183') ATM,
                                Mdsys.SdorIdTab('CT0044','CT0045','CT0048','CT0053','CT0065','CT0066','CT2021','CT2071','CT2073','CT2121','CT2123','CT2173')                                                                                  POS,
                                Mdsys.SdorIdTab('CT0057','CTX3')                                                                                                                                                                              RKO
                           from DUAL
                        ),
     PARAMETER_LIST(LIST,KIND,DBEG,DEND,TYPE,SHOW,KEYS) as
                        (select /*+ Materialize 
                                */
                                *
                           from (
                                 select Nvl( RegExp_Substr(LIST,'[^,]+',1,LEVEL),'NOT_SC'   ) LIST,
                                        Nvl2(RegExp_Substr(LIST,'[^,]+',1,LEVEL),'ONE','DAY') KIND,
                                        DBEG,
                                        DEND,
                                        TYPE,
                                        SHOW,
                                        LIST KEYS
                                   from PARAMETER
                                connect by LEVEL<=RegExp_Count(LIST,',')+2
                                  union all 
                                 select /*+ Cardinality(A 1) */ 
                                        A.*,'ATM' KIND,To_Date('01-02-2018','DD-MM-YYYY') DBEG,To_Date('28-02-2018','DD-MM-YYYY') DEND,0,2,Null
                                   from table(select ATM from PARAMETER) A
                                  union all
                                 select /*+ Opt_Estimate(Table A Rows=1) */ 
                                        A.*,'POS' KIND,To_Date('01-02-2018','DD-MM-YYYY') DBEG,To_Date('28-02-2018','DD-MM-YYYY') DEND,0,2,Null
                                   from table(select POS from PARAMETER) A
                                  union all
                                 select /*+ Opt_Estimate(Table A Rows=2) */  
                                        A.*,'RKO' KIND,To_Date('01-02-2018','DD-MM-YYYY') DBEG,To_Date('28-02-2018','DD-MM-YYYY') DEND,0,2,Null
                                   from table(select RKO from PARAMETER) A
                                )
                        )
select /*+
          Index_Combine(A I02_CFA_STATUS_FACT_DATE_FIN I03_CFA_STATUS_FACT_ID_CONTR)
       */
       A.ID_CONTRACT_RATANET,
       A.DATE_REQUEST,
       B.SHOW
  from ADBUS.V_CFA_STATUSOFCONTR_FACT A
 inner join PARAMETER_LIST B
    on (    Trunc(A.DATE_FININSURANCE) between B.DBEG and B.DEND
        and     B.KEYS is Null
        and     B.TYPE in(0,1)
        and     B.KIND in ('DAY')
         or     B.LIST=A.ID_CONTRACT_SAP
        and Not B.KEYS is Null
        and     B.TYPE in(0,1)
        and     B.KIND in ('ONE')
       )



Код: 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.
Plan hash value: 2500186944

---------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                  | Name                         | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                           |                              |     1 |    25 | 74122   (1)| 00:00:06 |
|   1 |  VIEW                                      | SV_AA00                      |     1 |    25 | 74122   (1)| 00:00:06 |
|   2 |   TEMP TABLE TRANSFORMATION                |                              |       |       |            |          |
|   3 |    LOAD AS SELECT                          | SYS_TEMP_0FD9D7749_FE49FB4E  |       |       |            |          |
|   4 |     VIEW                                   |                              |     5 |   210 |   116   (0)| 00:00:01 |
|   5 |      UNION-ALL                             |                              |       |       |            |          |
|*  6 |       CONNECT BY WITHOUT FILTERING         |                              |       |       |            |          |
|   7 |        FAST DUAL                           |                              |     1 |       |     2   (0)| 00:00:01 |
|   8 |       COLLECTION ITERATOR CONSTRUCTOR FETCH|                              |     1 |     2 |    38   (0)| 00:00:01 |
|   9 |        FAST DUAL                           |                              |     1 |       |     2   (0)| 00:00:01 |
|  10 |       COLLECTION ITERATOR CONSTRUCTOR FETCH|                              |     1 |     2 |    38   (0)| 00:00:01 |
|  11 |        FAST DUAL                           |                              |     1 |       |     2   (0)| 00:00:01 |
|  12 |       COLLECTION ITERATOR CONSTRUCTOR FETCH|                              |     2 |     4 |    38   (0)| 00:00:01 |
|  13 |        FAST DUAL                           |                              |     1 |       |     2   (0)| 00:00:01 |
|* 14 |    FILTER                                  |                              |       |       |            |          |
|  15 |     NESTED LOOPS                           |                              |     1 |    80 | 74006   (1)| 00:00:06 |
|* 16 |      VIEW                                  |                              |     5 |   210 |     2   (0)| 00:00:01 |
|  17 |       TABLE ACCESS FULL                    | SYS_TEMP_0FD9D7749_FE49FB4E  |     5 |   210 |     2   (0)| 00:00:01 |
|* 18 |      TABLE ACCESS BY INDEX ROWID BATCHED   | T_CFA_STATUSOFCONTR_FACT     |     1 |    38 | 74006   (1)| 00:00:06 |
|  19 |       BITMAP CONVERSION TO ROWIDS          |                              |       |       |            |          |
|  20 |        BITMAP OR                           |                              |       |       |            |          |
|  21 |         BITMAP CONVERSION FROM ROWIDS      |                              |       |       |            |          |
|  22 |          SORT ORDER BY                     |                              |       |       |            |          |
|* 23 |           INDEX RANGE SCAN                 | I02_CFA_STATUS_FACT_DATE_FIN |       |       |   735   (1)| 00:00:01 |
|  24 |         BITMAP CONVERSION FROM ROWIDS      |                              |       |       |            |          |
|* 25 |          INDEX RANGE SCAN                  | I03_CFA_STATUS_FACT_ID_CONTR |       |       |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   6 - filter(LEVEL<=NULL)
  14 - filter(SYS_AUDIT(1,'ADBUS','V_CFA_STATUSOFCONTR_FACT','S_CFA_STATUSOFCONTR_FACT',3) IS NULL)
  16 - filter("B"."TYPE"=0)
  18 - filter("B"."KEYS" IS NULL AND "B"."KIND"='DAY' AND 
              "B"."DBEG"<=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")) AND 
              "B"."DEND">=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")) OR "B"."LIST"="ID_CONTRACT_SAP" AND "B"."KIND"='ONE' AND 
              "ID_CONTRACT_SAP" IS NOT NULL AND "B"."KEYS" IS NOT NULL)
  23 - access("B"."DBEG"<=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")) AND 
              "B"."DEND">=TRUNC(INTERNAL_FUNCTION("DATE_FININSURANCE")))
  25 - access("B"."LIST"="ID_CONTRACT_SAP")
       filter("ID_CONTRACT_SAP" IS NOT NULL)
...
Рейтинг: 0 / 0
Параметризация -> Материализация -> Оптимазация
    #39615702
Фотография Aliea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И мне. Благодарю )
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Параметризация -> Материализация -> Оптимазация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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