powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Глюки оптимизатора 12с или мои ?
25 сообщений из 37, страница 1 из 2
Глюки оптимизатора 12с или мои ?
    #39292950
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В oracle 12.1.0.2.0 никто не сталкивался с тем,
что стоимость плана выполнения становилась
в 100.000 раз больше
чем в предыдущих версиях
при _всех_ равных условиях ?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39292952
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12c,

Почему бы и нет? Можете показать запрос и планы?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39292957
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функции в выражении есть?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39292965
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
SQL> l
  1     WITH DATA AS
  2          (SELECT DISTINCT t.ID, t.regnz_head regnz_t, t.lvl, z.stan, z.nsnz,
  3                           z.npoz, z.pl, NVL (v.vzav, v1.vespz) vzav, z.pnzt,
  4                           z.pr, t.regnz_from regnz, t.regnz regnz_p,
  5                           v.regnv_sv przv, zp.regnv_sv przz
  6                      FROM zadpr_tree_from t LEFT OUTER JOIN zadpr zp
  7                           ON t.regnz = zp.regnz
  8                           JOIN zadpr_v z ON t.regnz_from = z.regnz
  9                           LEFT OUTER JOIN pr_zakaz sv ON sv.regnv_sv =
 10                                                                      z.regnv_sv
 11                           LEFT OUTER JOIN zavka v
 12                           ON v.regnz = t.regnz_from
 13                              AND zp.regnv_sv = v.regnv_sv
 14                           LEFT OUTER JOIN potst v1
 15                           ON v1.nsnz = z.nsnz AND v1.npoz = z.npoz
 16                WHERE t.regnz_head = 151332 /*!!!!!!!*/)
 17     SELECT   ID, regnz_t, lvl, stan, nsnz, npoz, pl, vzav,
 18              CASE
 19                 WHEN regnz_p IS NULL
 20                    THEN 1
 21                 WHEN SUM (vzav) OVER (PARTITION BY regnz_p) = 0
 22                    THEN 1
 23                 ELSE ROUND (vzav / SUM (vzav) OVER (PARTITION BY regnz_p),
 24                             4
 25                            )
 26              END vol,
 27              SUM (vzav) OVER (PARTITION BY regnz_p) svzav, pnzt, pr, regnz,
 28              regnz_p, NULL, NULL
 29         FROM DATA
 30        WHERE NVL (NVL (przv, przz), 0) = NVL (NVL (przz, przv), 0)
 31*    ORDER BY ID
SQL> /

План выполнения
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=HINT: FIRST_ROWS (Cost=620026 Car
          d=5 Bytes=655)

   1    0   SORT (ORDER BY) (Cost=620026 Card=5 Bytes=655)
   2    1     WINDOW (SORT) (Cost=620026 Card=5 Bytes=655)
   3    2       VIEW (Cost=620024 Card=5 Bytes=655)
   4    3         HASH (UNIQUE) (Cost=620024 Card=5 Bytes=675)
   5    4           NESTED LOOPS (OUTER) (Cost=620023 Card=5 Bytes=675
          )

   6    5             HASH JOIN (Cost=620017 Card=5 Bytes=590)
   7    6               FILTER
   8    7                 NESTED LOOPS (OUTER) (Cost=6 Card=2 Bytes=86
          )

   9    8                   NESTED LOOPS (OUTER) (Cost=4 Card=2 Bytes=
          58)

  10    9                     TABLE ACCESS (BY INDEX ROWID BATCHED) OF
           'ZADPR_TREE_FROM' (TABLE) (Cost=2 Card=2 Bytes=42)

  11   10                       INDEX (RANGE SCAN) OF 'ZADPR_TREE_FROM
          _REGNZ_HEAD_IND' (INDEX) (Cost=1 Card=2)

  12    9                     TABLE ACCESS (BY INDEX ROWID) OF 'ZADPR'
           (TABLE) (Cost=1 Card=1 Bytes=8)

  13   12                       INDEX (UNIQUE SCAN) OF 'ZADPR_PK' (IND
          EX (UNIQUE)) (Cost=0 Card=1)

  14    8                   TABLE ACCESS (BY INDEX ROWID BATCHED) OF '
          ZAVKA' (TABLE) (Cost=2 Card=1 Bytes=14)

  15   14                     INDEX (RANGE SCAN) OF 'ZAVKA_REGNVSV_IND
          ' (INDEX) (Cost=1 Card=1)

  16    6               VIEW OF 'ZADPR_V' (VIEW) (Cost=620011 Card=165
          766 Bytes=12432450)

  17   16                 UNION-ALL
  18   17                   HASH JOIN (Cost=867 Card=19 Bytes=608)
  19   18                     NESTED LOOPS (Cost=867 Card=19 Bytes=608
          )

  20   19                       STATISTICS COLLECTOR
  21   20                         TABLE ACCESS (FULL) OF 'ZADPR' (TABL
          E) (Cost=616 Card=251 Bytes=6777)

  22   19                       INDEX (RANGE SCAN) OF 'NAZNASH_REGNZ_I
          ND' (INDEX) (Cost=1 Card=1 Bytes=5)

  23   18                     INDEX (FULL SCAN) OF 'NAZNASH_REGNZ_IND'
           (INDEX) (Cost=1 Card=1 Bytes=5)

  24   17                   NESTED LOOPS (Cost=619144 Card=165747 Byte
          s=25027797)

  25   24                     NESTED LOOPS (Cost=619144 Card=165747 By
          tes=25027797)

  26   25                       NESTED LOOPS (OUTER) (Cost=453358 Card
          =165747 Bytes=23536074)

  27   26                         VIEW OF 'VW_JF_SET$2DC9CC60' (VIEW)
          (Cost=288075 Card=165747 Bytes=20055387)

  28   27                           UNION-ALL
  29   28                             HASH JOIN (Cost=205226 Card=1022
          78 Bytes=7364016)

  30   29                               NESTED LOOPS (Cost=205226 Card
          =102278 Bytes=7364016)

  31   30                                 NESTED LOOPS (Cost=205226 Ca
          rd=102278 Bytes=7364016)

  32   31                                   STATISTICS COLLECTOR
  33   32                                     NESTED LOOPS (Cost=10292
          3 Card=102278 Bytes=6136680)

  34   33                                       NESTED LOOPS (OUTER) (
          Cost=621 Card=102278 Bytes=4704788)

  35   34                                         TABLE ACCESS (FULL)
          OF 'ZADPR' (TABLE) (Cost=617 Card=102278 Bytes=3170618)

  36   34                                         INDEX (UNIQUE SCAN)
          OF 'ZAKR_ZAK_UK' (INDEX (UNIQUE)) (Cost=0 Card=1 Bytes=15)

  37   33                                       INDEX (UNIQUE SCAN) OF
           'POZIC_N' (INDEX (UNIQUE)) (Cost=1 Card=1 Bytes=14)

  38   31                                   INDEX (UNIQUE SCAN) OF 'SH
          APKA_N' (INDEX (UNIQUE)) (Cost=0 Card=1)

  39   30                                 TABLE ACCESS (BY INDEX ROWID
          ) OF 'SHAPKA' (TABLE) (Cost=1 Card=1 Bytes=12)

  40   29                               TABLE ACCESS (FULL) OF 'SHAPKA
          ' (TABLE) (Cost=1 Card=1 Bytes=12)

  41   28                             NESTED LOOPS (Cost=82849 Card=63
          469 Bytes=3363857)

  42   41                               NESTED LOOPS (Cost=82849 Card=
          63469 Bytes=3363857)

  43   42                                 TABLE ACCESS (BY INDEX ROWID
           BATCHED) OF 'ZADPR' (TABLE) (Cost=19366 Card=63469 Bytes=21
          57946)

  44   43                                   INDEX (FULL SCAN) OF 'ZADP
          R_REGNVSV_IND' (INDEX) (Cost=147 Card=65369)

  45   42                                 INDEX (UNIQUE SCAN) OF 'PR_Z
          AKAZ_PK' (INDEX (UNIQUE)) (Cost=0 Card=1)

  46   41                               TABLE ACCESS (BY INDEX ROWID)
          OF 'PR_ZAKAZ' (TABLE) (Cost=1 Card=1 Bytes=19)

  47   26                         INDEX (UNIQUE SCAN) OF 'RAPORT_ZAK_V
          ES_PK' (INDEX (UNIQUE)) (Cost=1 Card=1 Bytes=21)

  48   25                       INDEX (UNIQUE SCAN) OF 'ZADPR_DETAIL_P
          K' (INDEX (UNIQUE)) (Cost=0 Card=1)

  49   24                     TABLE ACCESS (BY INDEX ROWID) OF 'ZADPR_
          DETAIL' (TABLE) (Cost=1 Card=1 Bytes=9)

  50    5             TABLE ACCESS (BY INDEX ROWID BATCHED) OF 'POTST'
           (TABLE) (Cost=2 Card=1 Bytes=17)

  51   50               INDEX (RANGE SCAN) OF 'POTST_ZAK' (INDEX) (Cos
          t=1 Card=1)

Тот же запрос в старой версии:

План выполнения
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=HINT: FIRST_ROWS (Cost=17 Card=1
          Bytes=166)

   1    0   SORT (ORDER BY) (Cost=17 Card=1 Bytes=166)
   2    1     WINDOW (SORT) (Cost=17 Card=1 Bytes=166)
   3    2       VIEW (Cost=12 Card=1 Bytes=166)
   4    3         SORT (UNIQUE) (Cost=12 Card=1 Bytes=126)
   5    4           FILTER
   6    5             NESTED LOOPS (OUTER)
   7    6               NESTED LOOPS (OUTER) (Cost=7 Card=1 Bytes=112)
   8    7                 VIEW (Cost=5 Card=1 Bytes=95)
   9    8                   NESTED LOOPS (OUTER) (Cost=5 Card=1 Bytes=
          103)

  10    9                     NESTED LOOPS (OUTER) (Cost=4 Card=1 Byte
          s=95)

  11   10                       NESTED LOOPS (Cost=4 Card=1 Bytes=90)
  12   11                         TABLE ACCESS (BY INDEX ROWID) OF 'ZA
          DPR_TREE_FROM' (Cost=2 Card=2 Bytes=40)

  13   12                           INDEX (RANGE SCAN) OF 'ZADPR_TREE_
          FROM_REGNZ_HEAD_IND' (NON-UNIQUE) (Cost=1 Card=2)

  14   11                         VIEW OF 'ZADPR_V' (Cost=1 Card=1 Byt
          es=70)

  15   14                           UNION-ALL (PARTITION)
  16   15                             NESTED LOOPS (Cost=4 Card=1 Byte
          s=105)

  17   16                               NESTED LOOPS (Cost=4 Card=1 By
          tes=91)

  18   17                                 NESTED LOOPS (OUTER) (Cost=3
           Card=1 Bytes=82)

  19   18                                   NESTED LOOPS (OUTER) (Cost
          =3 Card=1 Bytes=61)

  20   19                                     NESTED LOOPS (Cost=3 Car
          d=1 Bytes=46)

  21   20                                       TABLE ACCESS (BY INDEX
           ROWID) OF 'ZADPR' (Cost=2 Card=1 Bytes=34)

  22   21                                         INDEX (UNIQUE SCAN)
          OF 'ZADPR_PK' (UNIQUE) (Cost=1 Card=1)

  23   20                                       TABLE ACCESS (BY INDEX
           ROWID) OF 'SHAPKA' (Cost=1 Card=1 Bytes=12)

  24   23                                         INDEX (UNIQUE SCAN)
          OF 'SHAPKA_N' (UNIQUE)

  25   19                                     INDEX (UNIQUE SCAN) OF '
          ZAKR_ZAK_UK' (UNIQUE)

  26   18                                   INDEX (UNIQUE SCAN) OF 'RA
          PORT_ZAK_VES_PK' (UNIQUE)

  27   17                                 TABLE ACCESS (BY INDEX ROWID
          ) OF 'ZADPR_DETAIL' (Cost=1 Card=1 Bytes=9)

  28   27                                   INDEX (UNIQUE SCAN) OF 'ZA
          DPR_DETAIL_PK' (UNIQUE)

  29   16                               INDEX (UNIQUE SCAN) OF 'POZIC_
          N' (UNIQUE)

  30   15                             NESTED LOOPS (OUTER) (Cost=4 Car
          d=1 Bytes=91)

  31   30                               NESTED LOOPS (Cost=4 Card=1 By
          tes=86)

  32   31                                 NESTED LOOPS (Cost=3 Card=1
          Bytes=64)

  33   32                                   NESTED LOOPS (OUTER) (Cost
          =2 Card=1 Bytes=55)

  34   33                                     TABLE ACCESS (BY INDEX R
          OWID) OF 'ZADPR' (Cost=2 Card=1 Bytes=34)

  35   34                                       INDEX (UNIQUE SCAN) OF
           'ZADPR_PK' (UNIQUE) (Cost=1 Card=1)

  36   33                                     INDEX (UNIQUE SCAN) OF '
          RAPORT_ZAK_VES_PK' (UNIQUE)

  37   32                                   TABLE ACCESS (BY INDEX ROW
          ID) OF 'ZADPR_DETAIL' (Cost=1 Card=1 Bytes=9)

  38   37                                     INDEX (UNIQUE SCAN) OF '
          ZADPR_DETAIL_PK' (UNIQUE)

  39   31                                 TABLE ACCESS (BY INDEX ROWID
          ) OF 'PR_ZAKAZ' (Cost=1 Card=1 Bytes=22)

  40   39                                   INDEX (UNIQUE SCAN) OF 'PR
          _ZAKAZ_PK' (UNIQUE)

  41   30                               INDEX (UNIQUE SCAN) OF 'POTSH_
          PNZ' (UNIQUE)

  42   15                             NESTED LOOPS (Cost=3 Card=2 Byte
          s=70)

  43   42                               TABLE ACCESS (BY INDEX ROWID)
          OF 'ZADPR' (Cost=2 Card=1 Bytes=30)

  44   43                                 INDEX (UNIQUE SCAN) OF 'ZADP
          R_PK' (UNIQUE) (Cost=1 Card=1)

  45   42                               INDEX (RANGE SCAN) OF 'NAZNASH
          _REGNZ_IND' (NON-UNIQUE) (Cost=1 Card=2 Bytes=10)

  46   10                       INDEX (UNIQUE SCAN) OF 'PR_ZAKAZ_PK' (
          UNIQUE)

  47    9                     TABLE ACCESS (BY INDEX ROWID) OF 'ZADPR'
           (Cost=1 Card=1 Bytes=8)

  48   47                       INDEX (UNIQUE SCAN) OF 'ZADPR_PK' (UNI
          QUE)

  49    7                 TABLE ACCESS (BY INDEX ROWID) OF 'POTST' (Co
          st=2 Card=1 Bytes=17)

  50   49                   INDEX (RANGE SCAN) OF 'POTST_ZAK' (NON-UNI
          QUE) (Cost=1 Card=1)

  51    6               TABLE ACCESS (BY INDEX ROWID) OF 'ZAVKA' (Cost
          =2 Card=1 Bytes=14)

  52   51                 INDEX (RANGE SCAN) OF 'ZAVKA_REGNVSV_IND' (N
          ON-UNIQUE) (Cost=1 Card=1)
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39292982
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12c,

А статистика вся собрана? При первом беглом взгляде бросается в глаза разница в оценке Bytes. Еще бы хорошо посмотреть Projection планов.
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39292983
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12c,

И еще - постарайтесь форматировать планы, глаза же сломаешь.
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39292987
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12cчто стоимость плана выполнения становилась
в 100.000 раз больше
Одного единственного или всех рассмотренных?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39292990
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В частности - что с таблицей ZADPR ?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293049
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Воронцов,

уточните, пожалуйста, что имеется в виду,
что, как надо сделать ?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293051
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
SQL> select LAST_ANALYZED from dba_tables where table_name='ZADPR';

LAST_ANALY
----------
11.08.2016



Можно/нужно где-то в другом месте, как-то по другому смотреть ?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293056
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В sqlplus пишу:

set autotrace traceonly explain

Как можно/нужно отформатировать?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293061
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12cКак можно/нужно отформатировать?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
-- Defaults for SET AUTOTRACE EXPLAIN report
column id_plus_exp format 990 heading i
column parent_id_plus_exp format 990 heading p
column plan_plus_exp format a100
column object_node_plus_exp format a8
column other_tag_plus_exp format a29
column other_plus_exp format a44

...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293083
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас оптимизатор настроен на возврат первых строк, а не всех.
В новой версии соединение идёт по узлам BY INDEX ROWID BATCHED - эта фишка проседает при ожидании "первого нужного", т.к. вычитывает rowid пачками (приходящимися на 1 блок) и пока дойдёт до нужного - косты растут, но для плана по всем строкам она работает быстрее.

Сравните планы для ALL_ROWS
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293138
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FogelУ вас оптимизатор настроен на возврат первых строк, а не всех.
В новой версии соединение идёт по узлам BY INDEX ROWID BATCHED - эта фишка проседает при ожидании "первого нужного", т.к. вычитывает rowid пачками (приходящимися на 1 блок) и пока дойдёт до нужного - косты растут, но для плана по всем строкам она работает быстрее.

Сравните планы для ALL_ROWS

Лучше, но не решает проблему

Код: 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.
План выполнения
----------------------------------------------------------
   0
SELECT STATEMENT Optimizer=ALL_ROWS (Cost=7644 Card=5 Bytes=655)


   1    0
  SORT (ORDER BY) (Cost=7644 Card=5 Bytes=655)


   2    1
    WINDOW (SORT) (Cost=7644 Card=5 Bytes=655)


   3    2
      VIEW (Cost=7642 Card=5 Bytes=655)


   4    3
        HASH (UNIQUE) (Cost=7642 Card=5 Bytes=675)


   5    4
          NESTED LOOPS (OUTER) (Cost=7641 Card=5 Bytes=675)


   6    5
            HASH JOIN (Cost=7635 Card=5 Bytes=590)


   7    6
              FILTER


   8    7
                NESTED LOOPS (OUTER) (Cost=6 Card=2 Bytes=86)


   9    8
                  NESTED LOOPS (OUTER) (Cost=4 Card=2 Bytes=58)


  10    9
                    TABLE ACCESS (BY INDEX ROWID BATCHED) OF 'ZADPR_TREE_FROM' (
TABLE) (Cost=2 Card=2 Bytes=42)


  11   10
                      INDEX (RANGE SCAN) OF 'ZADPR_TREE_FROM_REGNZ_HEAD_IND' (IN
DEX) (Cost=1 Card=2)


  12    9
                    TABLE ACCESS (BY INDEX ROWID) OF 'ZADPR' (TABLE) (Cost=1 Car
d=1 Bytes=8)


  13   12
                      INDEX (UNIQUE SCAN) OF 'ZADPR_PK' (INDEX (UNIQUE)) (Cost=0
 Card=1)


  14    8
                  TABLE ACCESS (BY INDEX ROWID BATCHED) OF 'ZAVKA' (TABLE) (Cost
=2 Card=1 Bytes=14)


  15   14
                    INDEX (RANGE SCAN) OF 'ZAVKA_REGNVSV_IND' (INDEX) (Cost=1 Ca
rd=1)


  16    6
              VIEW OF 'ZADPR_V' (VIEW) (Cost=7628 Card=165766 Bytes=12432450)


  17   16
                UNION-ALL


  18   17
                  HASH JOIN (Cost=716 Card=19 Bytes=608)


  19   18
                    NESTED LOOPS (Cost=716 Card=19 Bytes=608)


  20   19
                      STATISTICS COLLECTOR


  21   20
                        TABLE ACCESS (FULL) OF 'ZADPR' (TABLE) (Cost=616 Card=25
1 Bytes=6777)


  22   19
                      INDEX (RANGE SCAN) OF 'NAZNASH_REGNZ_IND' (INDEX) (Cost=10
0 Card=1 Bytes=5)


  23   18
                    INDEX (FAST FULL SCAN) OF 'NAZNASH_REGNZ_IND' (INDEX) (Cost=
100 Card=161686 Bytes=808430)


  24   17
                  HASH JOIN (Cost=6912 Card=165747 Bytes=13922748)


  25   24
                    TABLE ACCESS (FULL) OF 'ZADPR_DETAIL' (TABLE) (Cost=547 Card
=168028 Bytes=1512252)


  26   24
                    VIEW OF 'VW_JF_SET$5356E05C' (VIEW) (Cost=5514 Card=165747 B
ytes=12431025)


  27   26
                      UNION-ALL


  28   27
                        NESTED LOOPS (OUTER) (Cost=3824 Card=102278 Bytes=951185
4)


  29   28
                          HASH JOIN (RIGHT OUTER) (Cost=3819 Card=102278 Bytes=7
977684)


  30   29
                            INDEX (FAST FULL SCAN) OF 'RAPORT_ZAK_VES_PK' (INDEX
 (UNIQUE)) (Cost=222 Card=193512 Bytes=4063752)


  31   29
                            HASH JOIN (Cost=2960 Card=102278 Bytes=5829846)


  32   31
                              NESTED LOOPS (Cost=2960 Card=102278 Bytes=5829846)


  33   32
                                STATISTICS COLLECTOR


  34   33
                                  HASH JOIN (Cost=1635 Card=102278 Bytes=4397954
)


  35   34
                                    TABLE ACCESS (FULL) OF 'SHAPKA' (TABLE) (Cos
t=652 Card=137426 Bytes=1649112)


  36   34
                                    TABLE ACCESS (FULL) OF 'ZADPR' (TABLE) (Cost
=617 Card=102278 Bytes=3170618)


  37   32
                                INDEX (UNIQUE SCAN) OF 'POZIC_N' (INDEX (UNIQUE)
) (Cost=436 Card=1 Bytes=14)


  38   31
                              INDEX (FAST FULL SCAN) OF 'POZIC_N' (INDEX (UNIQUE
)) (Cost=436 Card=504144 Bytes=7058016)


  39   28
                          INDEX (UNIQUE SCAN) OF 'ZAKR_ZAK_UK' (INDEX (UNIQUE))
(Cost=0 Card=1 Bytes=15)


  40   27
                        HASH JOIN (Cost=1691 Card=63469 Bytes=4696706)


  41   40
                          TABLE ACCESS (FULL) OF 'PR_ZAKAZ' (TABLE) (Cost=410 Ca
rd=67128 Bytes=1275432)


  42   40
                          HASH JOIN (OUTER) (Cost=1281 Card=63469 Bytes=3490795)


  43   42
                            NESTED LOOPS (OUTER) (Cost=1281 Card=63469 Bytes=349
0795)


  44   43
                              STATISTICS COLLECTOR


  45   44
                                TABLE ACCESS (FULL) OF 'ZADPR' (TABLE) (Cost=617
 Card=63469 Bytes=2157946)


  46   43
                              INDEX (UNIQUE SCAN) OF 'RAPORT_ZAK_VES_PK' (INDEX
(UNIQUE)) (Cost=222 Card=1 Bytes=21)


  47   42
                            INDEX (FAST FULL SCAN) OF 'RAPORT_ZAK_VES_PK' (INDEX
 (UNIQUE)) (Cost=222 Card=193512 Bytes=4063752)


  48    5
            TABLE ACCESS (BY INDEX ROWID BATCHED) OF 'POTST' (TABLE) (Cost=2 Car
d=1 Bytes=17)


  49   48
              INDEX (RANGE SCAN) OF 'POTST_ZAK' (INDEX) (Cost=1 Card=1)
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293154
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выполнение
SYS.DBMS_STATS.GATHER_DATABASE_STATS
тоже не помогает
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293165
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Арсеньевoracle12cчто стоимость плана выполнения становилась
в 100.000 раз больше
Одного единственного или всех рассмотренных?

Это первый опробованный запрос в новой версии,
он же пока и единственный опробованный...
Какой смысл пробовать другие, если/пока с этим проблеме не решится?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293179
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверьте валидность задействованных индексов (если есть локальные и на какой либо партиции отвалились, то подобное поведение может быть независимо от версии).
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293180
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12cСергей Арсеньевпропущено...

Одного единственного или всех рассмотренных?

Это первый опробованный запрос в новой версии,
он же пока и единственный опробованный...
Какой смысл пробовать другие, если/пока с этим проблеме не решится?Тогда лучше ничего не трогайте.
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293187
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FogelПроверьте валидность задействованных индексов (если есть локальные и на какой либо партиции отвалились, то подобное поведение может быть независимо от версии).
соврал, с 11.2
в версиях ниже частично разрушенные индексы не использовались бы полностью - шёл бы full scan.
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293219
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Павел Воронцов

Тогда лучше ничего не трогайте.[/quot]

Надо на новую версию переходить, однако...

Может быть, это поможет:

Код: 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.
SQL> set line 200
SQL> set pagesize 0
SQL> set trimspool on
SQL>
SQL> explain plan for
  2     WITH DATA AS
  3          (SELECT DISTINCT t.ID, t.regnz_head regnz_t, t.lvl, z.stan, z.nsnz,
  4                           z.npoz, z.pl, NVL (v.vzav, v1.vespz) vzav, z.pnzt,
  5                           z.pr, t.regnz_from regnz, t.regnz regnz_p,
  6                           v.regnv_sv przv, zp.regnv_sv przz
  7                      FROM zadpr_tree_from t LEFT OUTER JOIN zadpr zp
  8                           ON t.regnz = zp.regnz
  9                           JOIN zadpr_v z ON t.regnz_from = z.regnz
 10                           LEFT OUTER JOIN pr_zakaz sv ON sv.regnv_sv =
 11                                                                      z.regnv_sv
 12                           LEFT OUTER JOIN zavka v
 13                           ON v.regnz = t.regnz_from
 14                              AND zp.regnv_sv = v.regnv_sv
 15                           LEFT OUTER JOIN potst v1
 16                           ON v1.nsnz = z.nsnz AND v1.npoz = z.npoz
 17                     WHERE t.regnz_head = 151332 /*!!!!!!!*/)
 18     SELECT   ID, regnz_t, lvl, stan, nsnz, npoz, pl, vzav,
 19              CASE
 20                 WHEN regnz_p IS NULL
 21                    THEN 1
 22                 WHEN SUM (vzav) OVER (PARTITION BY regnz_p) = 0
 23                    THEN 1
 24                 ELSE ROUND (vzav / SUM (vzav) OVER (PARTITION BY regnz_p),
 25                             4
 26                            )
 27              END vol,
 28              SUM (vzav) OVER (PARTITION BY regnz_p) svzav, pnzt, pr, regnz,
 29              regnz_p, NULL, NULL
 30         FROM DATA
 31        WHERE NVL (NVL (przv, przz), 0) = NVL (NVL (przz, przv), 0)
 32     ORDER BY ID
 33  /

Объяснено.

SQL>
SQL> rem SELECT * FROM TABLE(dbms_xplan.display(NULL,NULL,'basic'));
SQL> SELECT * FROM TABLE(dbms_xplan.display(NULL,NULL,'all'));
Plan hash value: 2032817558

---------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                    | Name                           | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                             |                                |     5 |   655 |       |  7644   (1)| 00:00:01 |
|   1 |  SORT ORDER BY                               |                                |     5 |   655 |       |  7644   (1)| 00:00:01 |
|   2 |   WINDOW SORT                                |                                |     5 |   655 |       |  7644   (1)| 00:00:01 |
|   3 |    VIEW                                      |                                |     5 |   655 |       |  7642   (1)| 00:00:01 |
|   4 |     HASH UNIQUE                              |                                |     5 |   675 |       |  7642   (1)| 00:00:01 |
|   5 |      NESTED LOOPS OUTER                      |                                |     5 |   675 |       |  7641   (1)| 00:00:01 |
|*  6 |       HASH JOIN                              |                                |     5 |   590 |       |  7635   (1)| 00:00:01 |
|*  7 |        FILTER                                |                                |       |       |       |            |          |
|   8 |         NESTED LOOPS OUTER                   |                                |     2 |    86 |       |     6   (0)| 00:00:01 |
|   9 |          NESTED LOOPS OUTER                  |                                |     2 |    58 |       |     4   (0)| 00:00:01 |
|  10 |           TABLE ACCESS BY INDEX ROWID BATCHED| ZADPR_TREE_FROM                |     2 |    42 |       |     2   (0)| 00:00:01 |
|* 11 |            INDEX RANGE SCAN                  | ZADPR_TREE_FROM_REGNZ_HEAD_IND |     2 |       |       |     1   (0)| 00:00:01 |
|  12 |           TABLE ACCESS BY INDEX ROWID        | ZADPR                          |     1 |     8 |       |     1   (0)| 00:00:01 |
|* 13 |            INDEX UNIQUE SCAN                 | ZADPR_PK                       |     1 |       |       |     0   (0)| 00:00:01 |
|* 14 |          TABLE ACCESS BY INDEX ROWID BATCHED | ZAVKA                          |     1 |    14 |       |     2   (0)| 00:00:01 |
|* 15 |           INDEX RANGE SCAN                   | ZAVKA_REGNVSV_IND              |     1 |       |       |     1   (0)| 00:00:01 |
|  16 |        VIEW                                  | ZADPR_V                        |   165K|    11M|       |  7628   (1)| 00:00:01 |
|  17 |         UNION-ALL                            |                                |       |       |       |            |          |
|* 18 |          HASH JOIN                           |                                |    19 |   608 |       |   716   (1)| 00:00:01 |
|* 19 |           TABLE ACCESS FULL                  | ZADPR                          |   251 |  6777 |       |   616   (1)| 00:00:01 |
|  20 |           INDEX FAST FULL SCAN               | NAZNASH_REGNZ_IND              |   161K|   789K|       |   100   (1)| 00:00:01 |
|* 21 |          HASH JOIN                           |                                |   165K|    13M|  3448K|  6912   (1)| 00:00:01 |
|  22 |           TABLE ACCESS FULL                  | ZADPR_DETAIL                   |   168K|  1476K|       |   547   (1)| 00:00:01 |
|  23 |           VIEW                               | VW_JF_SET$5356E05C             |   165K|    11M|       |  5514   (1)| 00:00:01 |
|  24 |            UNION-ALL                         |                                |       |       |       |            |          |
|  25 |             NESTED LOOPS OUTER               |                                |   102K|  9288K|       |  3824   (1)| 00:00:01 |
|* 26 |              HASH JOIN RIGHT OUTER           |                                |   102K|  7790K|  6240K|  3819   (1)| 00:00:01 |
|  27 |               INDEX FAST FULL SCAN           | RAPORT_ZAK_VES_PK              |   193K|  3968K|       |   222   (1)| 00:00:01 |
|* 28 |               HASH JOIN                      |                                |   102K|  5693K|  5496K|  2960   (1)| 00:00:01 |
|* 29 |                HASH JOIN                     |                                |   102K|  4294K|  3224K|  1635   (1)| 00:00:01 |
|  30 |                 TABLE ACCESS FULL            | SHAPKA                         |   137K|  1610K|       |   652   (1)| 00:00:01 |
|* 31 |                 TABLE ACCESS FULL            | ZADPR                          |   102K|  3096K|       |   617   (1)| 00:00:01 |
|  32 |                INDEX FAST FULL SCAN          | POZIC_N                        |   504K|  6892K|       |   436   (1)| 00:00:01 |
|* 33 |              INDEX UNIQUE SCAN               | ZAKR_ZAK_UK                    |     1 |    15 |       |     0   (0)| 00:00:01 |
|* 34 |             HASH JOIN                        |                                | 63469 |  4586K|       |  1691   (1)| 00:00:01 |
|  35 |              TABLE ACCESS FULL               | PR_ZAKAZ                       | 67128 |  1245K|       |   410   (1)| 00:00:01 |
|* 36 |              HASH JOIN OUTER                 |                                | 63469 |  3408K|  2856K|  1281   (1)| 00:00:01 |
|* 37 |               TABLE ACCESS FULL              | ZADPR                          | 63469 |  2107K|       |   617   (1)| 00:00:01 |
|  38 |               INDEX FAST FULL SCAN           | RAPORT_ZAK_VES_PK              |   193K|  3968K|       |   222   (1)| 00:00:01 |
|  39 |       TABLE ACCESS BY INDEX ROWID BATCHED    | POTST                          |     1 |    17 |       |     2   (0)| 00:00:01 |
|* 40 |        INDEX RANGE SCAN                      | POTST_ZAK                      |     1 |       |       |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$10
   3 - SEL$6C2100D6 / DATA@SEL$10
   4 - SEL$6C2100D6
  10 - SEL$6C2100D6 / T@SEL$1
  11 - SEL$6C2100D6 / T@SEL$1
  12 - SEL$6C2100D6 / ZP@SEL$1
  13 - SEL$6C2100D6 / ZP@SEL$1
  14 - SEL$6C2100D6 / V@SEL$7
  15 - SEL$6C2100D6 / V@SEL$7
  16 - SET$C9C8A705 / Z@SEL$2
  17 - SET$C9C8A705
  18 - SEL$5
  19 - SEL$5        / Z@SEL$5
  20 - SEL$5        / N@SEL$5
  21 - SEL$592F7F55
  22 - SEL$592F7F55 / ZD@SEL$3
  23 - SET$5356E05C / VW_JF_SET$5356E05C@SEL$1AC9F164
  24 - SET$5356E05C
  25 - SEL$0101FBD4
  27 - SEL$0101FBD4 / R@SEL$3
  30 - SEL$0101FBD4 / ZTSH@SEL$3
  31 - SEL$0101FBD4 / Z@SEL$3
  32 - SEL$0101FBD4 / ZT@SEL$3
  33 - SEL$0101FBD4 / ZZ@SEL$3
  34 - SEL$DDED8540
  35 - SEL$DDED8540 / ZP@SEL$4
  37 - SEL$DDED8540 / Z@SEL$4
  38 - SEL$DDED8540 / R@SEL$4
  39 - SEL$6C2100D6 / V1@SEL$8
  40 - SEL$6C2100D6 / V1@SEL$8

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

   6 - access("T"."REGNZ_FROM"="Z"."REGNZ")
   7 - filter(NVL(NVL("V"."REGNV_SV","ZP"."REGNV_SV"),0)=NVL(NVL("ZP"."REGNV_SV","V"."REGNV_SV"),0))
  11 - access("T"."REGNZ_HEAD"=151332)
  13 - access("T"."REGNZ"="ZP"."REGNZ"(+))
  14 - filter("V"."REGNZ"(+)="T"."REGNZ_FROM" AND "V"."REGNZ"(+) IS NOT NULL)
  15 - access("ZP"."REGNV_SV"="V"."REGNV_SV"(+))
  18 - access("Z"."REGNZ"="N"."REGNZ")
  19 - filter("Z"."PR"=0)
  21 - access("ITEM_1"="ZD"."REGNZ")
  26 - access("Z"."STAN"="R"."STAN"(+) AND "Z"."GDIS"="R"."GDIS"(+) AND "Z"."NPOZ"="R"."NPOZ"(+) AND "Z"."NSNZ"="R"."NSNZ"(+))
  28 - access("Z"."NPOZ"="ZT"."NPOZ" AND "Z"."NSNZ"="ZT"."NSNZ")
  29 - access("Z"."NSNZ"="ZTSH"."NSNZ")
  31 - filter("Z"."PR"=1)
  33 - access("Z"."NSNZ"="ZZ"."NSNZ"(+) AND "Z"."NPOZ"="ZZ"."NPOZ"(+))
  34 - access("Z"."REGNV_SV"="ZP"."REGNV_SV")
  36 - access("Z"."STAN"="R"."STAN"(+) AND "Z"."GDIS"="R"."GDIS"(+) AND "Z"."NPOZ"="R"."NPOZ"(+) AND "Z"."NSNZ"="R"."NSNZ"(+))
  37 - filter("Z"."REGNV_SV" IS NOT NULL AND "Z"."PR"=2)
  40 - access("V1"."NSNZ"(+)="Z"."NSNZ" AND "V1"."NPOZ"(+)="Z"."NPOZ")

Column Projection Information (identified by operation id):
-----------------------------------------------------------

   1 - (#keys=1) "ID"[NUMBER,22], NULL[0], "REGNZ_T"[NUMBER,22], "LVL"[NUMBER,22], "STAN"[NUMBER,22], "NSNZ"[VARCHAR2,10],
       "NPOZ"[NUMBER,22], "PL"[NUMBER,22], "VZAV"[NUMBER,22], CASE  WHEN "REGNZ_P" IS NULL THEN 1 WHEN SUM("VZAV") OVER ( PARTITION
       BY "REGNZ_P")=0 THEN 1 ELSE ROUND("VZAV"/SUM("VZAV") OVER ( PARTITION BY "REGNZ_P"),4) END [22], SUM("VZAV") OVER ( PARTITION
       BY "REGNZ_P")[22], "PNZT"[NUMBER,22], "PR"[NUMBER,2], "REGNZ"[NUMBER,22], "REGNZ_P"[NUMBER,22], NULL[0]
   2 - (#keys=1) "REGNZ_P"[NUMBER,22], "ID"[NUMBER,22], "REGNZ_T"[NUMBER,22], "LVL"[NUMBER,22], "STAN"[NUMBER,22],
       "NSNZ"[VARCHAR2,10], "NPOZ"[NUMBER,22], "PL"[NUMBER,22], "VZAV"[NUMBER,22], "PNZT"[NUMBER,22], "PR"[NUMBER,2],
       "REGNZ"[NUMBER,22], SUM("VZAV") OVER ( PARTITION BY "REGNZ_P")[22]
   3 - "ID"[NUMBER,22], "REGNZ_T"[NUMBER,22], "LVL"[NUMBER,22], "STAN"[NUMBER,22], "NSNZ"[VARCHAR2,10], "NPOZ"[NUMBER,22],
       "PL"[NUMBER,22], "VZAV"[NUMBER,22], "PNZT"[NUMBER,22], "PR"[NUMBER,2], "REGNZ"[NUMBER,22], "REGNZ_P"[NUMBER,22]
   4 - (#keys=14) "T"."ID"[NUMBER,22], "T"."REGNZ_HEAD"[NUMBER,22], "T"."LVL"[NUMBER,22], "Z"."STAN"[NUMBER,22],
       "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22], "Z"."PL"[NUMBER,22], NVL("V"."VZAV","V1"."VESPZ")[22], "Z"."PNZT"[NUMBER,22],
       "Z"."PR"[NUMBER,2], "T"."REGNZ_FROM"[NUMBER,22], "T"."REGNZ"[NUMBER,22], "V"."REGNV_SV"[NUMBER,22], "ZP"."REGNV_SV"[NUMBER,22]
   5 - (#keys=0) "T"."REGNZ_FROM"[NUMBER,22], "T"."ID"[NUMBER,22], "T"."REGNZ_HEAD"[NUMBER,22], "T"."REGNZ"[NUMBER,22],
       "V"."REGNV_SV"[NUMBER,22], "T"."LVL"[NUMBER,22], "ZP"."REGNV_SV"[NUMBER,22], "V"."VZAV"[NUMBER,22], "Z"."PNZT"[NUMBER,22],
       "Z"."PR"[NUMBER,2], "Z"."STAN"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22], "Z"."PL"[NUMBER,22],
       "V1"."VESPZ"[NUMBER,22]
   6 - (#keys=1) "T"."REGNZ_FROM"[NUMBER,22], "T"."ID"[NUMBER,22], "T"."REGNZ_HEAD"[NUMBER,22], "T"."REGNZ"[NUMBER,22],
       "V"."REGNV_SV"[NUMBER,22], "T"."LVL"[NUMBER,22], "ZP"."REGNV_SV"[NUMBER,22], "V"."VZAV"[NUMBER,22], "Z"."PNZT"[NUMBER,22],
       "Z"."PR"[NUMBER,2], "Z"."STAN"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22], "Z"."PL"[NUMBER,22]
   7 - "T"."ID"[NUMBER,22], "T"."REGNZ_HEAD"[NUMBER,22], "T"."REGNZ"[NUMBER,22], "T"."REGNZ_FROM"[NUMBER,22],
       "T"."LVL"[NUMBER,22], "ZP"."REGNV_SV"[NUMBER,22], "V"."VZAV"[NUMBER,22], "V"."REGNV_SV"[NUMBER,22]
   8 - (#keys=0) "T"."ID"[NUMBER,22], "T"."REGNZ_HEAD"[NUMBER,22], "T"."REGNZ"[NUMBER,22], "T"."REGNZ_FROM"[NUMBER,22],
       "T"."LVL"[NUMBER,22], "ZP"."REGNV_SV"[NUMBER,22], "V"."VZAV"[NUMBER,22], "V"."REGNV_SV"[NUMBER,22]
   9 - (#keys=0) "T"."ID"[NUMBER,22], "T"."REGNZ_HEAD"[NUMBER,22], "T"."REGNZ"[NUMBER,22], "T"."REGNZ_FROM"[NUMBER,22],
       "T"."LVL"[NUMBER,22], "ZP"."REGNV_SV"[NUMBER,22]
  10 - "T"."ID"[NUMBER,22], "T"."REGNZ_HEAD"[NUMBER,22], "T"."REGNZ"[NUMBER,22], "T"."REGNZ_FROM"[NUMBER,22],
       "T"."LVL"[NUMBER,22]
  11 - "T".ROWID[ROWID,10], "T"."REGNZ_HEAD"[NUMBER,22]
  12 - "ZP"."REGNV_SV"[NUMBER,22]
  13 - "ZP".ROWID[ROWID,10]
  14 - "V"."VZAV"[NUMBER,22], "V"."REGNV_SV"[NUMBER,22]
  15 - "V".ROWID[ROWID,10], "V"."REGNV_SV"[NUMBER,22]
  16 - "Z"."REGNZ"[NUMBER,22], "Z"."PR"[NUMBER,2], "Z"."STAN"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22],
       "Z"."PL"[NUMBER,22], "Z"."PNZT"[NUMBER,22]
  17 - STRDEF[22], STRDEF[2], STRDEF[22], STRDEF[10], STRDEF[22], STRDEF[22], STRDEF[22]
  18 - (#keys=1) "Z"."REGNZ"[NUMBER,22], "Z"."STAN"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22]
  19 - "Z"."REGNZ"[NUMBER,22], "Z"."STAN"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22]
  20 - "N"."REGNZ"[NUMBER,22]
  21 - (#keys=1) "ZD"."PL"[NUMBER,22], "ITEM_7"[NUMBER,22], "ITEM_2"[NUMBER,22], "ITEM_3"[NUMBER,2], "ITEM_4"[NUMBER,22],
       "ITEM_5"[VARCHAR2,10], "ITEM_6"[NUMBER,22]
  22 - (rowset=200) "ZD"."REGNZ"[NUMBER,22], "ZD"."PL"[NUMBER,22]
  23 - "ITEM_1"[NUMBER,22], "ITEM_2"[NUMBER,22], "ITEM_3"[NUMBER,2], "ITEM_4"[NUMBER,22], "ITEM_5"[VARCHAR2,10],
       "ITEM_6"[NUMBER,22], "ITEM_7"[NUMBER,22]
  24 - STRDEF[22], STRDEF[22], STRDEF[2], STRDEF[22], STRDEF[10], STRDEF[22], STRDEF[22]
  25 - (#keys=0) "Z"."STAN"[NUMBER,22], "ZT"."NPOZ"[NUMBER,22], "ZT"."NPOZ"[NUMBER,22], "ZT"."NSNZ"[VARCHAR2,10],
       "ZT"."NSNZ"[VARCHAR2,10], "ZTSH"."PNZT"[NUMBER,22], "Z"."REGNZ"[NUMBER,22]
  26 - (#keys=4) "Z"."STAN"[NUMBER,22], "Z"."NPOZ"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "ZT"."NPOZ"[NUMBER,22],
       "ZT"."NPOZ"[NUMBER,22], "ZT"."NSNZ"[VARCHAR2,10], "ZT"."NSNZ"[VARCHAR2,10], "ZTSH"."PNZT"[NUMBER,22], "Z"."REGNZ"[NUMBER,22]
  27 - "R"."NSNZ"[VARCHAR2,10], "R"."NPOZ"[NUMBER,22], "R"."GDIS"[NUMBER,22], "R"."STAN"[NUMBER,22]
  28 - (#keys=2) "Z"."NPOZ"[NUMBER,22], "ZT"."NPOZ"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "ZT"."NSNZ"[VARCHAR2,10],
       "ZT"."NSNZ"[VARCHAR2,10], "ZTSH"."PNZT"[NUMBER,22], "Z"."REGNZ"[NUMBER,22], "Z"."STAN"[NUMBER,22], "Z"."GDIS"[NUMBER,22],
       "ZT"."NPOZ"[NUMBER,22]
  29 - (#keys=1) "Z"."NSNZ"[VARCHAR2,10], "ZTSH"."PNZT"[NUMBER,22], "Z"."REGNZ"[NUMBER,22], "Z"."STAN"[NUMBER,22],
       "Z"."GDIS"[NUMBER,22], "Z"."NPOZ"[NUMBER,22]
  30 - (rowset=200) "ZTSH"."NSNZ"[VARCHAR2,10], "ZTSH"."PNZT"[NUMBER,22]
  31 - (rowset=200) "Z"."REGNZ"[NUMBER,22], "Z"."STAN"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22],
       "Z"."GDIS"[NUMBER,22]
  32 - "ZT"."NSNZ"[VARCHAR2,10], "ZT"."NPOZ"[NUMBER,22]
  34 - (#keys=1) "ZP"."NM_POZ"[NUMBER,22], "ZP"."NM_ZAK"[VARCHAR2,10], "Z"."STAN"[NUMBER,22], "Z"."REGNZ"[NUMBER,22]
  35 - (rowset=200) "ZP"."REGNV_SV"[NUMBER,22], "ZP"."NM_ZAK"[VARCHAR2,10], "ZP"."NM_POZ"[NUMBER,22]
  36 - (#keys=4) "Z"."STAN"[NUMBER,22], "Z"."REGNZ"[NUMBER,22], "Z"."REGNV_SV"[NUMBER,22]
  37 - "Z"."REGNZ"[NUMBER,22], "Z"."STAN"[NUMBER,22], "Z"."NSNZ"[VARCHAR2,10], "Z"."NPOZ"[NUMBER,22],
       "Z"."REGNV_SV"[NUMBER,22], "Z"."GDIS"[NUMBER,22]
  38 - "R"."NSNZ"[VARCHAR2,10], "R"."NPOZ"[NUMBER,22], "R"."GDIS"[NUMBER,22], "R"."STAN"[NUMBER,22]
  39 - "V1"."VESPZ"[NUMBER,22]
  40 - "V1".ROWID[ROWID,10]

Note
-----
   - dynamic statistics used: dynamic sampling (level=2)
   - this is an adaptive plan
   - 2 Sql Plan Directives used for this statement
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293222
oracle12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Воронцовoracle12c,

Еще бы хорошо посмотреть Projection планов.



Честно говоря не понял, про Projection.

Это что, как его смотреть?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293230
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12c,

Это Column Projection Information , она там есть. Теперь то же самое на предыдущей версии
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293233
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12c если/пока с этим проблеме не решится?
А в чем проблема?
В принципе, хотя Бурлеcсон и против, это ожидаемое поведение - Oracle всегда утверждали, попугаи ничего не значат и могут быть любыми и сравнивать их в отрыве от конкретного запроса и окружения бессмысленно.

Вот если, для конкретного запроса при выборе конкретного плана оценка одного из планов сильно поплыла, тогда стоит задуматься. Если все стали в сто тыщ раз больше и выбор от этого не меняется, то в чем проблема?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293241
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, кстати. Время выполнения запроса тоже радикально изменилось?
...
Рейтинг: 0 / 0
Глюки оптимизатора 12с или мои ?
    #39293244
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle12c,

А, действительно, как адаптивные планы работают?
Код: plsql
1.
2.
3.
4.
show parameter optimizer
alter session set optimizer_dynamic_sampling = 11;
alter session set optimizer_adaptive_reporting_only = true;   --disable adaptive optimization 
alter session set optimizer_adaptive_reporting_only = false;  --enable adaptive optimization 
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Глюки оптимизатора 12с или мои ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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