|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
Коллеги, привет! помогите, плиз, мой мир сходит с ума. оракл ведет себя странно (вроде) есть супер длинный запрос вида Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
в таком виде запрос выдает (и это правильно) Код: plaintext 1. 2. 3.
мне понадобилась группировка, и внезапно результат получился Код: plaintext 1.
я начала смотреть и выяснила, что если хоть что-то материализуется, то результат практически непредсказуем значение второго поля (task_id) становится то 321651, то 283200 (причем некоторые запросы используются несколько раз, т.е. по умолчанию они материализуются) иногда на результат влияет наличие фильтра на task_id без этого фильтра поле может выглядеть как 321651 добавляю фильтр - ничего не возвращается опытным путем выяснилось, что только если всем подзапросам поставить --+ inline - все ок!! но это, во-первых, грустно, потому что материализация тут была бы полезна. во-вторых, это что за? объясните, плиз, или дайте ссылку на доку, если кто знает, в чем дело ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 21:34 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 21:36 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
chidoriami, план надо смотреть. Скорее всего, где-то неправильно трансформация срабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 21:49 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
я смотрела планы, они в целом совпадали, кроме материализации (сейчас не могу посмотреть, т. к. ушла с работы) завтра посмотрю ещё раз. только как план запроса может повлиять на значение столбца? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 22:07 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
chidoriamiушла с работыНе получается запрос - сразу увольняться! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 22:34 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
chidoriamiя смотрела планы, они в целом совпадали, кроме материализации (сейчас не могу посмотреть, т. к. ушла с работы) завтра посмотрю ещё раз. только как план запроса может повлиять на значение столбца?transitive closure +join/group-by elimination например. Вообще надо в идеале трассу 10053 или хотя бы dbms_sql2.expand_sql_text ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 22:55 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
chidoriamiтолько как план запроса может повлиять на значение столбца? "where rownum..." или другая недетерминированность в подзапросах встречается? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 01:05 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
chidoriamiя начала смотреть и выяснила, что если хоть что-то материализуется, то результат практически непредсказуем ... опытным путем выяснилось, что только если всем подзапросам поставить --+ inline - все ок!! ... Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production Классический косяк оракла новой версии: "сложный запрос" + "materialize" = "непредсказуемый результат запроса". Выхода два - либо самостоятельно нащупать фиктивное действие (дополнительная группировка, материализация), которое не исключит оптимизатор и оно исправит ситуацию, либо "материализовывать" вручную в отдельные таблицы. Есть еще третий - обновить оракл, что-то версия старовата (не знаю, какая уж сейчас - последний раз как раз на 12.2.0.1 боролся с этими багами). Вдруг починили. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 07:55 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
RA\/ENКлассический косяк оракла новой версии: "сложный запрос" + "materialize" = "непредсказуемый результат запроса". Выхода два - либо самостоятельно нащупать фиктивное действие (дополнительная группировка, материализация), которое не исключит оптимизатор и оно исправит ситуацию, либо "материализовывать" вручную в отдельные таблицы. Есть еще третий - обновить оракл, что-то версия старовата (не знаю, какая уж сейчас - последний раз как раз на 12.2.0.1 боролся с этими багами). Вдруг починили. спасибо! буду щупать или оставлю inline ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 09:12 |
|
with materialize меняет данные
|
|||
---|---|---|---|
#18+
Да ну"where rownum..." или другая недетерминированность в подзапросах встречается? не, я первым делом проверила запрос на всякие глупости нормальный запрос, сложная логика, но в плане соединений там всё прозрачно и просто ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 09:32 |
|
|
start [/forum/topic.php?fid=52&msg=39767886&tid=1882846]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
1544ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 1969ms |
0 / 0 |