powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение group by. Или лыжи не едут или я.....
35 сообщений из 35, показаны все 2 страниц
Странное поведение group by. Или лыжи не едут или я.....
    #39810760
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
странности с групп бай.
Оракл 12.2 на линуксе. RAC
Выполняю запрос, данных там миллионы строк, с воспроизведением будут проблемы :-)
получаю результат, с дублями полей из групп бай.
Код: 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.
select t.brid, 
sum(dl.summ/k.krsp),
s.summ summ_sk,
case when nvl(s.summ,0)<>0 then  sum(dl.summ/k.krsp)/(s.summ) else null end k
from doc d
join docl dl on dl.did=d.id
join tov t on t.id=dl.tid
join docsub ds on ds.id=d.id
join krs_day k on trunc(d.DT)= K.DT and k.currid= 22
left join(
select aa.brid,avg(aa.summ)summ from(
select t.brid,s1.dt dt,sum(s1.q
*t.cena0/k.krsp)/2 summ
from(select s.tid,s.dt dt,sum(s.q)q
from sk_by_dt s
where s.dt in(
select trunc(LAST_DAY(ADD_MONTHS(sysdate,-13+level))) dt from dual
connect by level < 13)
group by s.tid,s.dt
)s1
join krs_day k on s1.dt = K.DT and k.currid= 22
join tov t on t.id=s1.tid
group by t.brid,s1.dt
) aa
group by aa.brid
) s on s.brid=t.brid 
where D.tpk='N' and d.stk in ('P','G','H', 'Z')
and ds.stor=0 
and trunc(D.DT) between ADD_MONTHS(TRUNC(sysdate, 'mm'),-12) and LAST_DAY(ADD_MONTHS(trunc(sysdate),-1))
group by t.brid,s.summ
order by t.brid


результат приложен в виде файла.
как можно заметить строки с brid 4154,4165,4167 задвоились.
что забавно если перед последним group by добавить сроку
and t.brid in (4154,4165,4167)
то задвоения не происходит.
и, как заметил на последних тестах, двоятся строки не всегда одни и теже.
вероятно, я несколько путано изложил суть.
и прошу простить не понял как скриншоты прикладывать в удобоваримом виде.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810776
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

Код: plsql
1.
on     s.brid = t.brid

?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810781
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

no_parallel
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810782
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

и? что в этом потенциально криминального?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810789
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-Надфиль,

no_parallel
хинт не помог (да и не должен, везде где мог я указал мануал и т.д в настройках сервера)
зато начала двоится строка с ид 4168...
ну в начале моих исследований она тоже двоилась, потом решила не двоится. сейчас опять двоится..
чертовщина какая-та.
общего только то, что двоится совсем чуть чуть. т.е. в одной строке sum большой, а в задвоенной маленький..
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810796
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

у Вас жеж группировка по t.brid,s.summ


если убрать s.summ?

s.summ мож разные в "н-м разряде"

.....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810801
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StaxНадфиль,

у Вас жеж группировка по t.brid,s.summ


если убрать s.summ?

s.summ мож разные в "н-м разряде"

.....
stax
я проверял внутренний запрос из которого берется s.summ
там на каждое brid ровно одно значение..
если целиком убрать подзапрос, то задвоений нет.
но их нет и в подзапросе.
не, я могу, конечно, переписать запрос совсем по другому. мне просто тут интересно разобраться в причинах. ибо если глючит один запрос, не факт что не глючит полсотни других. просто я и коллеги их еще не видели. и от этой мысли волосы в неположенных местах начинают шевелится.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810803
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxs.summ мож разные в "н-м разряде"

да и как я написал в первом сообщении.
если двоящиеся brid включить where, то двоится магически перестает.
Пойду приму витамины..
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810808
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильStaxs.summ мож разные в "н-м разряде"

да и как я написал в первом сообщении.
если двоящиеся brid включить where, то двоится магически перестает.
Пойду приму витамины..

group by t.brid,trunc(s.summ,8) не двоит?


.....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810815
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxgroup by t.brid,trunc(s.summ,8) не двоит?

да это помогло.
но вы таки будете смеяться, но как?
оно что для внутреннего подзапроса. хранило несколько пар (ну или откудато брало) с разной точностью?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810818
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

выведи в строку длиной 38
увидишь разницу
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810820
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymxНадфиль,

выведи в строку длиной 38
увидишь разницу
я не должен ее увидеть. есть две пара brid summ почему мне втрое значение нужно возвращать "по разному"?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810829
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль"по разному"?
Планчики поизучайте пристально.
Иногда случаются баговые трансформации.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810831
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810832
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильStaxgroup by t.brid,trunc(s.summ,8) не двоит?

но вы таки будете смеяться, но как?
оно что для внутреннего подзапроса. хранило несколько пар (ну или откудато брало) с разной точностью?

не буду смеятся, наоборот радуюсь что сразу вылезло, бувает выстрелит через месяцы

теперь Вам надо акуратненько найти почему суммы разные
и вообще правильно ли именно по суме группировать

аккуратненько проверить что там считается по месяцам и найдете причину разных сумм

зы
1/3+1/3+1/3 <> 1

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810837
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помню в делфовой ветке не раз публиковали ссылку на статью про числовые типы данных
=>
Группировать по нецелым числам - то еще дело
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810840
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильandreymxНадфиль,

выведи в строку длиной 38
увидишь разницу
я не должен ее увидеть. есть две пара brid summ почему мне втрое значение нужно возвращать "по разному"?
не второе значение, а оба

выведите больше знаков для summ_sk
col summ_sk format 000000000000.9999999999999999999999999999999999999999999999999 (39 девяток)
на крайняк dump(summ_sk)

.....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810845
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxпомню в делфовой ветке не раз публиковали ссылку на статью про числовые типы данных
=>
Группировать по нецелым числам - то еще дело

можно влоб trunc(s1.q*t.cena0/k.krsp,хх)

но імхо луче найти где и почему набегают хвостики

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810849
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все таки мне кажется это некий косяк от оракла.
например, когда я ограничивал выборку несколькими значениями brid, для которых наблюдались задвоения, все становилось нормально и без округления.
всем спасибо. надеюсь темы была не бесполезной...
и пойду приму усиленную дозу витаминов ;-)
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810859
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфильвсе таки мне кажется это некий косяк от оракла.
например, когда я ограничивал выборку несколькими значениями brid, для которых наблюдались задвоения, все становилось нормально и без округления.
всем спасибо. надеюсь темы была не бесполезной...
и пойду приму усиленную дозу витаминов ;-)

возможно и косяк, посмотрите в плане куда и как оракля раскладывает предикаты,
мож и впрям непраильно "трансформировал/оптимизировал"

зы
надеюсь что хоть сами значения summ_sk правильные

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810861
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxна крайняк dump(summ_sk)

вот как то так.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810862
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

и еще, обратите внимание
к для плохих сумм очень маленькое, не знаю что оно значит на практике
но как бы намекает на непростые k.krsp для дублей, а не на баг оракля

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810867
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Stax]Надфиль посмотрите в плане куда и как оракля раскладывает предикаты
план у нас такой.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810870
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxк для плохих сумм очень маленькое
сумма маленькая и к маленькое. и это правильно.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810883
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильStaxна крайняк dump(summ_sk)

вот как то так.
на всякий случай спрошу.
вы же увидели разницу, правда?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810915
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильStaxк для плохих сумм очень маленькое
сумма маленькая и к маленькое. и это правильно.
как маленькая, больше 203тысч (в обоих случаях), но для 14,59 к маленькое, на етим помедитируйте
ищите причину

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810918
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Надфиль]Staxпропущено...

план у нас такой.
имхо, если склонятся к жучку
то важно не сам план, а на каком уровне и какие предикаты применены,
но ето уже к спецам по трансформациям вопросы

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810941
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...на всякий случай спрошу.
вы же увидели разницу, правда?
я разницу увидел, естественно, НО, я всеарвно не очень понимаю как вычисленный датасет у которого пары значений ид/сумма, можно куда то приджойнить в некотором небольшом числе случаев с другим значением??
или "трансформация, оптимизация" такова что она каждый раз вычисляет его вновь?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810950
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфильна всякий случай спрошу.


Значение и его презентация это две большие разницы:

Код: 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.
SQL> WITH T AS (
  2             SELECT 489671.6624286281 X FROM DUAL UNION ALL
  3             SELECT 489671.6624286282 X FROM DUAL
  4            )
  5  SELECT  X
  6    FROM  T
  7    GROUP BY X
  8  /

         X
----------
489671.662
489671.662

SQL> column x format 999999.9999
SQL> /

           X
------------
 489671.6624
 489671.6624

SQL> column x format 999999.99999999
SQL> /

               X
----------------
 489671.66242863
 489671.66242863

SQL> -- а вот и суслик
SQL> column x format 999999.9999999999
SQL> /

                 X
------------------
 489671.6624286281
 489671.6624286282

SQL> 



SY.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810954
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SYЗначение и его презентация это две большие разницы:

да с этим никто и не спорит.
вопрос в том откуда вообще тут могут взяться разные значения или их презентации?

поясню исходный запрос.
таблица tov у нее поле brid
каждому значению brid сосуществуют сотни в среднем (от одного до нескольких тысяч) строк в brid.
приджойненый запрос содержит примерно 450 пар brid summ
так какого черта для некоторых строк из tov берется разное значение? причем действительно для нескольких 1,2 не больше в рамках brid, причем примерно половина не задвоена.
почему когда явно ограничить несколькими проблемными brid задвоений не происходит?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810956
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
[quote Надфиль]StaxНадфиль посмотрите в плане куда и как оракля раскладывает предикаты
план у нас такой.


Надфиль,
судя по плану сработала GROUP-BY placement трансформация. Ее нужно отключить с помощью хинта NO_PLACE_GROUP_BY.

зы. ненавижу когда планы представляют картинками из тоада... ну неужели трудно выложить нормально план от dbms_xplan с параметром advanced?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810957
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
если затрудняетесь с параметром для этого хинта, то можно сделать на уровне запроса:
Код: plsql
1.
/*+ opt_param('_optimizer_group_by_placement' 'false') */
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39811123
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtenderзы. ненавижу когда планы представляют картинками из тоада... ну неужели трудно выложить нормально план от dbms_xplan с параметром advanced?
так годится?
Код: 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.
PLAN_TABLE_OUTPUT
Plan hash value: 3915164698
 
----------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                            | Name              | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                                     |                   |  5834 |   336K|       |    78M  (1)| 00:50:57 |
|   1 |  SORT GROUP BY                                       |                   |  5834 |   336K|       |    78M  (1)| 00:50:57 |
|   2 |   VIEW                                               |                   |  2042M|   112G|       |    78M  (1)| 00:50:54 |
|   3 |    HASH GROUP BY                                     |                   |  2042M|   327G|   346G|    78M  (1)| 00:50:54 |
|*  4 |     FILTER                                           |                   |       |       |       |            |          |
|*  5 |      HASH JOIN RIGHT OUTER                           |                   |  2042M|   327G|  7936K|   932K  (1)| 00:00:37 |
|   6 |       VIEW                                           |                   |   270K|  4761K|       |   129K  (1)| 00:00:06 |
|   7 |        HASH GROUP BY                                 |                   |   270K|    13M|    16M|   129K  (1)| 00:00:06 |
|*  8 |         HASH JOIN                                    |                   |   270K|    13M|    13M|   126K  (1)| 00:00:05 |
|   9 |          VIEW                                        |                   |   270K|    10M|       |  4815   (1)| 00:00:01 |
|  10 |           HASH GROUP BY                              |                   |   270K|    12M|    15M|  4815   (1)| 00:00:01 |
|* 11 |            HASH JOIN                                 |                   |   270K|    12M|       |  1636   (1)| 00:00:01 |
|* 12 |             TABLE ACCESS FULL                        | KRS_DAY           |  4017 | 92391 |       |    22   (0)| 00:00:01 |
|  13 |             NESTED LOOPS                             |                   |   183K|  4309K|       |  1613   (1)| 00:00:01 |
|  14 |              NESTED LOOPS                            |                   |   183K|  4309K|       |  1613   (1)| 00:00:01 |
|  15 |               VIEW                                   | VW_NSO_1          |     1 |     6 |       |     3  (34)| 00:00:01 |
|  16 |                HASH UNIQUE                           |                   |     1 |       |       |     3  (34)| 00:00:01 |
|* 17 |                 CONNECT BY WITHOUT FILTERING (UNIQUE)|                   |       |       |       |            |          |
|  18 |                  FAST DUAL                           |                   |     1 |       |       |     2   (0)| 00:00:01 |
|* 19 |               INDEX RANGE SCAN                       | SK_BY_DATE_DT_IDX |   183K|       |       |   501   (1)| 00:00:01 |
|  20 |              TABLE ACCESS BY INDEX ROWID             | SK_BY_DT          |   183K|  3232K|       |  1610   (1)| 00:00:01 |
|  21 |          TABLE ACCESS FULL                           | TOV               |    28M|   351M|       | 86903   (1)| 00:00:04 |
|* 22 |       HASH JOIN                                      |                   |  1981K|   291M|   262M|   780K  (1)| 00:00:31 |
|* 23 |        HASH JOIN                                     |                   |  1981K|   240M|    29M|   628K  (1)| 00:00:25 |
|* 24 |         HASH JOIN                                    |                   |   319K|    26M|    23M| 98930   (1)| 00:00:04 |
|  25 |          NESTED LOOPS                                |                   |   319K|    19M|       | 67033   (1)| 00:00:03 |
|* 26 |           TABLE ACCESS FULL                          | KRS_DAY           |   365 |  8395 |       |    22   (0)| 00:00:01 |
|* 27 |           TABLE ACCESS BY INDEX ROWID BATCHED        | DOC               |   875 | 36750 |       |   213   (0)| 00:00:01 |
|* 28 |            INDEX RANGE SCAN                          | DOC_TRUNC_DT_IDX  |  1207 |       |       |    12   (0)| 00:00:01 |
|* 29 |          INDEX FAST FULL SCAN                        | DOCSUB_IDX_STOR   |    12M|   256M|       | 10701   (1)| 00:00:01 |
|  30 |         TABLE ACCESS FULL                            | DOCL              |    67M|  2643M|       |   358K  (1)| 00:00:14 |
|  31 |        TABLE ACCESS FULL                             | TOV               |    28M|   729M|       | 86903   (1)| 00:00:04 |
----------------------------------------------------------------------------------------------------------------------------------
 
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
 
   1 - SEL$EDC04FC4
   2 - SEL$B2D3FBAB / from$_subquery$_019@SEL$12
   3 - SEL$B2D3FBAB
   6 - SEL$CCA5E655 / AA@SEL$6
   7 - SEL$CCA5E655
   9 - SEL$F938087A / from$_subquery$_016@SEL$10
  10 - SEL$F938087A
  12 - SEL$F938087A / K@SEL$7
  15 - SEL$092D738C / VW_NSO_1@SEL$F938087A
  16 - SEL$092D738C
  18 - SEL$092D738C / DUAL@SEL$9
  19 - SEL$F938087A / S@SEL$8
  20 - SEL$F938087A / S@SEL$8
  21 - SEL$CCA5E655 / T@SEL$10
  26 - SEL$B2D3FBAB / K@SEL$4
  27 - SEL$B2D3FBAB / D@SEL$1
  28 - SEL$B2D3FBAB / D@SEL$1
  29 - SEL$B2D3FBAB / DS@SEL$3
  30 - SEL$B2D3FBAB / DL@SEL$1
  31 - SEL$B2D3FBAB / T@SEL$2
 
Outline Data
-------------
 
  /*+
      BEGIN_OUTLINE_DATA
      CONNECT_BY_COMBINE_SW(@"SEL$092D738C")
      NO_CONNECT_BY_FILTERING(@"SEL$092D738C")
      USE_HASH_AGGREGATION(@"SEL$092D738C")
      USE_HASH_AGGREGATION(@"SEL$F938087A")
      SWAP_JOIN_INPUTS(@"SEL$F938087A" "K"@"SEL$7")
      USE_HASH(@"SEL$F938087A" "K"@"SEL$7")
      NLJ_BATCHING(@"SEL$F938087A" "S"@"SEL$8")
      USE_NL(@"SEL$F938087A" "S"@"SEL$8")
      LEADING(@"SEL$F938087A" "VW_NSO_1"@"SEL$F938087A" "S"@"SEL$8" "K"@"SEL$7")
      FULL(@"SEL$F938087A" "K"@"SEL$7")
      INDEX(@"SEL$F938087A" "S"@"SEL$8" ("SK_BY_DT"."DT"))
      NO_ACCESS(@"SEL$F938087A" "VW_NSO_1"@"SEL$F938087A")
      USE_HASH_AGGREGATION(@"SEL$CCA5E655")
      USE_HASH(@"SEL$CCA5E655" "T"@"SEL$10")
      LEADING(@"SEL$CCA5E655" "from$_subquery$_016"@"SEL$10" "T"@"SEL$10")
      FULL(@"SEL$CCA5E655" "T"@"SEL$10")
      NO_ACCESS(@"SEL$CCA5E655" "from$_subquery$_016"@"SEL$10")
      USE_HASH_AGGREGATION(@"SEL$B2D3FBAB")
      SWAP_JOIN_INPUTS(@"SEL$B2D3FBAB" "AA"@"SEL$6")
      USE_HASH(@"SEL$B2D3FBAB" "AA"@"SEL$6")
      USE_HASH(@"SEL$B2D3FBAB" "T"@"SEL$2")
      USE_HASH(@"SEL$B2D3FBAB" "DL"@"SEL$1")
      USE_HASH(@"SEL$B2D3FBAB" "DS"@"SEL$3")
      USE_NL(@"SEL$B2D3FBAB" "D"@"SEL$1")
      LEADING(@"SEL$B2D3FBAB" "K"@"SEL$4" "D"@"SEL$1" "DS"@"SEL$3" "DL"@"SEL$1" "T"@"SEL$2" "AA"@"SEL$6")
      NO_ACCESS(@"SEL$B2D3FBAB" "AA"@"SEL$6")
      FULL(@"SEL$B2D3FBAB" "T"@"SEL$2")
      FULL(@"SEL$B2D3FBAB" "DL"@"SEL$1")
      INDEX_FFS(@"SEL$B2D3FBAB" "DS"@"SEL$3" ("DOCSUB"."ID" "DOCSUB"."STOR"))
      BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$B2D3FBAB" "D"@"SEL$1")
      INDEX_RS_ASC(@"SEL$B2D3FBAB" "D"@"SEL$1" "DOC_TRUNC_DT_IDX")
      FULL(@"SEL$B2D3FBAB" "K"@"SEL$4")
      NO_ACCESS(@"SEL$EDC04FC4" "from$_subquery$_019"@"SEL$12")
      OUTLINE(@"SEL$1")
      OUTLINE(@"SEL$2")
      MERGE(@"SEL$1" >"SEL$2")
      OUTLINE(@"SEL$58A6D7F6")
      OUTLINE(@"SEL$3")
      MERGE(@"SEL$58A6D7F6" >"SEL$3")
      OUTLINE(@"SEL$9E43CB6E")
      OUTLINE(@"SEL$4")
      OUTLINE(@"SEL$5")
      OUTLINE(@"SEL$8")
      OUTLINE(@"SEL$7")
      OUTLINE(@"SEL$12")
      MERGE(@"SEL$9E43CB6E" >"SEL$4")
      OUTLINE(@"SEL$EE94F965")
      OUTLINE(@"SEL$6")
      ANSI_REARCH(@"SEL$5")
      OUTLINE(@"SEL$EB4BAB32")
      OUTLINE(@"SEL$10")
      OUTLINE(@"SEL$11")
      OUTLINE(@"SEL$9")
      MERGE(@"SEL$8" >"SEL$7")
      OUTLINE(@"SEL$8A3193DA")
      OUTLINE(@"SEL$A9DBB1CB")
      ANSI_REARCH(@"SEL$12")
      OUTLINE_LEAF(@"SEL$EDC04FC4")
      MERGE(@"SEL$EE94F965" >"SEL$EB4BAB32")
      MERGE(@"SEL$6" >"SEL$EB4BAB32")
      OUTLINE_LEAF(@"SEL$B2D3FBAB")
      MERGE(@"SEL$10" >"SEL$11")
      OUTLINE_LEAF(@"SEL$CCA5E655")
      UNNEST(@"SEL$9" UNNEST_INNERJ_DISTINCT_VIEW)
      OUTLINE_LEAF(@"SEL$F938087A")
      CONNECT_BY_ELIM_DUPS(@"SEL$A9DBB1CB")
      OUTLINE_LEAF(@"SEL$092D738C")
      ALL_ROWS
      OPT_PARAM('_optimizer_nlj_hj_adaptive_join' 'false')
      OPT_PARAM('_optimizer_strans_adaptive_pruning' 'false')
      OPT_PARAM('_px_adaptive_dist_method' 'off')
      DB_VERSION('12.2.0.1')
      OPTIMIZER_FEATURES_ENABLE('12.2.0.1')
      IGNORE_OPTIM_EMBEDDED_HINTS
      END_OUTLINE_DATA
  */
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - filter(LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE@!),-1))>=ADD_MONTHS(TRUNC(SYSDATE@!,'fmmm'),-12))
   5 - access("AA"."BRID"(+)="T"."BRID")
   8 - access("T"."ID"="S1"."TID")
  11 - access("S"."DT"="K"."DT")
  12 - filter("K"."CURRID"=22)
  17 - filter(LEVEL<13)
  19 - access("S"."DT"=INTERNAL_FUNCTION("DT"))
  22 - access("T"."ID"="DL"."TID")
  23 - access("DL"."DID"="D"."ID")
  24 - access("DS"."ID"="D"."ID")
  26 - filter("K"."CURRID"=22 AND "K"."DT">=ADD_MONTHS(TRUNC(SYSDATE@!,'fmmm'),-12) AND 
              "K"."DT"<=LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE@!),-1)))
  27 - filter("D"."TPK"='N' AND ("D"."STK"='G' OR "D"."STK"='H' OR "D"."STK"='P' OR "D"."STK"='Z'))
  28 - access("K"."DT"=TRUNC(INTERNAL_FUNCTION("DT")))
       filter(TRUNC(INTERNAL_FUNCTION("DT"))>=ADD_MONTHS(TRUNC(SYSDATE@!,'fmmm'),-12) AND 
              TRUNC(INTERNAL_FUNCTION("DT"))<=LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE@!),-1)))
  29 - filter("DS"."STOR"=0)
 
Column Projection Information (identified by operation id):
-----------------------------------------------------------
 
   1 - (#keys=2) "T"."BRID"[NUMBER,22], "S"."SUMM"[NUMBER,22], SUM("DL"."SUMM"/"K"."KRSP")[22]
   2 - (rowset=256) "DL"."SUMM"[NUMBER,22], "T"."BRID"[NUMBER,22], "K"."KRSP"[NUMBER,22], "S"."SUMM"[NUMBER,22]
   3 - (#keys=25; rowset=256) "T"."BRID"[NUMBER,22], ROWID[ROWID,10], ROWID[ROWID,10], ROWID[ROWID,10], ROWID[ROWID,10], 
       ROWID[ROWID,10], "K"."KRSP"[NUMBER,22], "K"."CURRID"[NUMBER,22], "K"."DT"[DATE,7], "DS"."STOR"[NUMBER,22], 
       "DS"."ID"[NUMBER,22], "AA"."BRID"[NUMBER,22], "T"."CENA0"[NUMBER,22], "T"."CURRID"[NUMBER,22], "T"."ID"[NUMBER,22], 
       "DL"."CENA0"[NUMBER,22], "DL"."SUMM"[NUMBER,22], "DL"."TID"[NUMBER,22], "DL"."DID"[NUMBER,22], "DL"."ID"[NUMBER,22], 
       "D"."STK"[CHARACTER,4], "D"."TPK"[CHARACTER,4], "D"."CURRID"[NUMBER,22], "D"."DT"[DATE,7], "D"."ID"[NUMBER,22], 
       COUNT("AA"."SUMM")[22], SUM("AA"."SUMM")[22]
   4 - "AA"."BRID"[NUMBER,22], "T"."BRID"[NUMBER,22], "AA"."SUMM"[NUMBER,22], "DL"."TID"[NUMBER,22], "T"."ID"[NUMBER,22], 
       "D"."ID"[NUMBER,22], "DL"."DID"[NUMBER,22], "DS"."STOR"[NUMBER,22], "DS"."ID"[NUMBER,22], ROWID[ROWID,10], 
       "K"."DT"[DATE,7], "K"."CURRID"[NUMBER,22], "K"."KRSP"[NUMBER,22], ROWID[ROWID,10], "D"."DT"[DATE,7], 
       "D"."CURRID"[NUMBER,22], "D"."TPK"[CHARACTER,4], "D"."STK"[CHARACTER,4], ROWID[ROWID,10], ROWID[ROWID,10], 
       "DL"."ID"[NUMBER,22], "DL"."CENA0"[NUMBER,22], "DL"."SUMM"[NUMBER,22], ROWID[ROWID,10], "T"."CENA0"[NUMBER,22], 
       "T"."CURRID"[NUMBER,22]
   5 - (#keys=1) "AA"."BRID"[NUMBER,22], "T"."BRID"[NUMBER,22], "AA"."SUMM"[NUMBER,22], "DL"."TID"[NUMBER,22], 
       "T"."ID"[NUMBER,22], "D"."ID"[NUMBER,22], "DL"."DID"[NUMBER,22], "DS"."STOR"[NUMBER,22], "DS"."ID"[NUMBER,22], 
       ROWID[ROWID,10], "K"."DT"[DATE,7], "K"."CURRID"[NUMBER,22], "K"."KRSP"[NUMBER,22], ROWID[ROWID,10], "D"."DT"[DATE,7], 
       "D"."CURRID"[NUMBER,22], "D"."TPK"[CHARACTER,4], "D"."STK"[CHARACTER,4], ROWID[ROWID,10], ROWID[ROWID,10], 
       "DL"."ID"[NUMBER,22], "DL"."CENA0"[NUMBER,22], "DL"."SUMM"[NUMBER,22], ROWID[ROWID,10], "T"."CENA0"[NUMBER,22], 
       "T"."CURRID"[NUMBER,22]
   6 - (rowset=256) "AA"."BRID"[NUMBER,22], "AA"."SUMM"[NUMBER,22]
   7 - (#keys=2; rowset=256) "T"."BRID"[NUMBER,22], "from$_subquery$_016"."QCSJ_C000000001600000"[DATE,7], 
       SUM("from$_subquery$_016"."Q"*"T"."CENA0"/"from$_subquery$_016"."KRSP")[22]
   8 - (#keys=1; rowset=256) "from$_subquery$_016"."KRSP"[NUMBER,22], 
       "from$_subquery$_016"."QCSJ_C000000001600000"[DATE,7], "from$_subquery$_016"."Q"[NUMBER,22], "T"."BRID"[NUMBER,22], 
       "T"."CENA0"[NUMBER,22]
   9 - (rowset=256) "S1"."TID"[NUMBER,22], "from$_subquery$_016"."QCSJ_C000000001600000"[DATE,7], 
       "from$_subquery$_016"."Q"[NUMBER,22], "from$_subquery$_016"."KRSP"[NUMBER,22]
  10 - (#keys=6; rowset=256) "S"."TID"[NUMBER,22], "S"."DT"[DATE,7], ROWID[ROWID,10], "K"."KRSP"[NUMBER,22], 
       "K"."CURRID"[NUMBER,22], "K"."DT"[DATE,7], SUM("S"."Q")[22]
  11 - (#keys=1; rowset=256) "K"."DT"[DATE,7], "S"."DT"[DATE,7], ROWID[ROWID,10], "K"."KRSP"[NUMBER,22], 
       "K"."CURRID"[NUMBER,22], "S"."Q"[NUMBER,22], "S"."TID"[NUMBER,22]
  12 - (rowset=256) ROWID[ROWID,10], "K"."DT"[DATE,7], "K"."CURRID"[NUMBER,22], "K"."KRSP"[NUMBER,22]
  13 - (#keys=0) "S"."DT"[DATE,7], "S"."TID"[NUMBER,22], "S"."Q"[NUMBER,22]
  14 - (#keys=0) "S".ROWID[ROWID,10], "S"."DT"[DATE,7]
  15 - "DT"[DATE,8]
  16 - (#keys=1) TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE@!,(-13)+LEVEL)))[8]
  17 - LEVEL[4]
  19 - "S".ROWID[ROWID,10], "S"."DT"[DATE,7]
  20 - "S"."TID"[NUMBER,22], "S"."Q"[NUMBER,22]
  21 - (rowset=256) "T"."ID"[NUMBER,22], "T"."CENA0"[NUMBER,22], "T"."BRID"[NUMBER,22]
  22 - (#keys=1) "DL"."TID"[NUMBER,22], "T"."ID"[NUMBER,22], "D"."ID"[NUMBER,22], "DL"."DID"[NUMBER,22], 
       "DS"."STOR"[NUMBER,22], "DS"."ID"[NUMBER,22], ROWID[ROWID,10], "K"."DT"[DATE,7], "K"."CURRID"[NUMBER,22], 
       "K"."KRSP"[NUMBER,22], ROWID[ROWID,10], "D"."DT"[DATE,7], "D"."CURRID"[NUMBER,22], "D"."TPK"[CHARACTER,4], 
       "D"."STK"[CHARACTER,4], ROWID[ROWID,10], ROWID[ROWID,10], "DL"."ID"[NUMBER,22], "DL"."CENA0"[NUMBER,22], 
       "DL"."SUMM"[NUMBER,22], ROWID[ROWID,10], "T"."BRID"[NUMBER,22], "T"."CURRID"[NUMBER,22], "T"."CENA0"[NUMBER,22]
  23 - (#keys=1; rowset=256) "D"."ID"[NUMBER,22], "DL"."DID"[NUMBER,22], "DS"."STOR"[NUMBER,22], "DS"."ID"[NUMBER,22], 
       ROWID[ROWID,10], "K"."DT"[DATE,7], "K"."CURRID"[NUMBER,22], "K"."KRSP"[NUMBER,22], ROWID[ROWID,10], "D"."DT"[DATE,7], 
       "D"."CURRID"[NUMBER,22], "D"."TPK"[CHARACTER,4], "D"."STK"[CHARACTER,4], ROWID[ROWID,10], ROWID[ROWID,10], 
       "DL"."ID"[NUMBER,22], "DL"."CENA0"[NUMBER,22], "DL"."TID"[NUMBER,22], "DL"."SUMM"[NUMBER,22]
  24 - (#keys=1; rowset=256) "D"."ID"[NUMBER,22], "DS"."ID"[NUMBER,22], ROWID[ROWID,10], "K"."DT"[DATE,7], 
       "K"."CURRID"[NUMBER,22], "K"."KRSP"[NUMBER,22], ROWID[ROWID,10], "D"."DT"[DATE,7], "D"."CURRID"[NUMBER,22], 
       "D"."TPK"[CHARACTER,4], "D"."STK"[CHARACTER,4], ROWID[ROWID,10], "DS"."STOR"[NUMBER,22]
  25 - (#keys=0) ROWID[ROWID,10], "K"."DT"[DATE,7], "K"."CURRID"[NUMBER,22], "K"."KRSP"[NUMBER,22], ROWID[ROWID,10], 
       "D"."ID"[NUMBER,22], "D"."DT"[DATE,7], "D"."CURRID"[NUMBER,22], "D"."TPK"[CHARACTER,4], "D"."STK"[CHARACTER,4]
  26 - ROWID[ROWID,10], "K"."DT"[DATE,7], "K"."CURRID"[NUMBER,22], "K"."KRSP"[NUMBER,22]
  27 - ROWID[ROWID,10], "D"."ID"[NUMBER,22], "D"."DT"[DATE,7], "D"."CURRID"[NUMBER,22], "D"."TPK"[CHARACTER,4], 
       "D"."STK"[CHARACTER,4]
  28 - ROWID[ROWID,10], TRUNC(INTERNAL_FUNCTION("DT"))[DATE,7]
  29 - ROWID[ROWID,10], "DS"."ID"[NUMBER,22], "DS"."STOR"[NUMBER,22]
  30 - (rowset=256) ROWID[ROWID,10], "DL"."ID"[NUMBER,22], "DL"."DID"[NUMBER,22], "DL"."TID"[NUMBER,22], 
       "DL"."SUMM"[NUMBER,22], "DL"."CENA0"[NUMBER,22]
  31 - (rowset=256) ROWID[ROWID,10], "T"."ID"[NUMBER,22], "T"."CURRID"[NUMBER,22], "T"."CENA0"[NUMBER,22], 
       "T"."BRID"[NUMBER,22]
 
Sql Plan Directive information:
-------------------------------
 
  Valid directive ids:
    7817342961589794216
    9269255978859239658
    13659517254222289456
    7917300634642988666
    8499098861008093164
    3197875205861779786
    6740147412193993527
    3936095245764813869
    14885619136507854832
    13586474784952263830
    17833722588659491645
    1891618652614293619
    12136247708456137003
    5745223894351957094
 
  Used directive ids:
    12753152432378949753
    12148210053655134229
    2202228160552015123
    7922324600670031403
 
Note
-----
   - dynamic statistics used: dynamic sampling (level=2)
   - 4 Sql Plan Directives used for this statement

...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39811125
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtenderесли затрудняетесь с параметром для этого хинта, то можно сделать на уровне запроса:
Код: plsql
1.
/*+ opt_param('_optimizer_group_by_placement' 'false') */


не увидел разницы...
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39811135
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хинт /*+ rule*/
устраняет "проблему".
меня это не сильно удивляет, но все таки доставляет :-)
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение group by. Или лыжи не едут или я.....
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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