|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Очень странный баг встретили в оракле. Происходит очень редко - только 3й раз за год ( при том, что процедура вызывается сотни раз в день ). Но суть в том, что оракл ( версии 11.2.0.4 ) путает местами колонки - и значение для одной колонки результата записывает в другую и наоборот. Да, понимаю, выглядит донельзя нелепо и невозможно, поэтому каждый из трех раз разные разработчики расследовали и забрасывали это с комментарием "мистика". Но баг который потенциально корраптит данные, причем возможно и тысячи строк - неприятен, и хотелось бы понять в чем дело. Более подробно: Есть запрос который написан вот таким путем схематично: Код: 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.
Так вот - очень редко ( один раз на тысячи ) происходит то, что оракл вставляет данные которые должны быть, например, во второй колонке - в четвертую, а то, что должно быть в четвертой - во вторую. А иногда первую в третью и наоборот. А иногда и то и то. Абсолютно идиотская ситуация, и непонятно почему. Единственная гипотеза - это дело в метке some_trash перед каждым подзапросом. Это не имя схемы как могло бы показаться - как оказалось ораклу все равно что вы напишете перед именем подзапроса, хоть "dfdsfsdfавыа2121!3".cst_party_rel прекрасно работает. Например: Код: plsql 1. 2.
Что делает там эта метка - не спрашивайте, она там была всегда. Это имя какой-то старой схемы, которое забыли удалить при какой-то миграции. Возможно именно она приводит к тому, что оракл просто .... путает местами подзапросы. Никто не сталкивался с подобным? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2020, 23:31 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Valergrad, А plan hash value для кривого запуска поменялось? Есть что-то подозрительное в "Column Projection Information" в плане? PS. Почему бы не переписать 4 внешних соединения на одно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 00:09 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Valergrad, В запросе точно литералы, а не бинды? А то у меня похожее было, правда на 12.х если правильно помню ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 00:29 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
И, да - метка не причём. Это старое известное поведение ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 00:29 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Valergrad, Тут я писал об этом: http://orasql.org/2017/11/24/oracle-issues-after-upgrade-to-12-2/ Основные симптомы: оракловый клиент или дблинк с базой 12+ и хоть один бинд с clob, blob или xmltype: оракловый клиент переносил такие бинды в конец. Был похожий баг: OCI Application Fails With ORA-01483/ORA-01461 When Inserting VARCHAR2 Field From 12.2 Database Using Database Link To Lower Database Version. (Doc ID 2309285.1) Нам помогло установить "_qkslvc_extended_bind_sz"=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 00:40 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
xtender, ну, у меня нет ни биндов ни дблинков. Так что это вероятно что-то другое. Кобанчег Valergrad, А plan hash value для кривого запуска поменялось? Есть что-то подозрительное в "Column Projection Information" в плане? PS. Почему бы не переписать 4 внешних соединения на одно? sql_id и plan_hash_value у кривого запуска точно такой же как и у остальных. Поэтому и запись в dba_hist_sql_plan одна на всех у них... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 00:44 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Valergrad, cursor_sharing? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 00:46 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
а вообще, в любом случае, лучше переписать эту хрень, чем упорно заниматься "мистикой" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 00:50 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Valergrad Очень странный баг встретили в оракле. ... суть в том, что оракл ( версии 11.2.0.4 ) путает местами колонки - и значение для одной колонки результата записывает в другую и наоборот. ... Никто не сталкивался с подобным? Существует класс дефектов wrong result. Есть документы Things To Consider, где эти баги как-то собраны для 11.2 - 12.1 точка входа вот ( Doc ID 1904820.1 ). Для 11.2.0.4 это Things to Consider to Avoid Poor Performance or Wrong Results on 11.2.0.4 (Doc ID 1645862.1) Но и в этих документах не все баги, вот этих, например, существующих в 11.2.0.4 Bug 23273859 - Wrong result with join predicate pushed and correlated subquery using ANSI syntax (Doc ID 23273859.8) Bug 22170948 - Wrong results with view merging of view with a select list subquery, and subquery referenced multiple times (Doc ID 22170948.8) Bug 20233824 - Wrong results from outer joined view having a subquery in the select list (Doc ID 20233824.8) Bug 18034871 - Wrong results for query with ANSI join (Doc ID 18034871.8) как, и многих других, там нет. Для 12.2 есть такой документ Things to Consider to Avoid Prominent Wrong Result Problems on 12.2.0.1 Proactively (Doc ID 2595291.1) Чтобы уменьшить шанс наступить wrong result, стоит вовремя накатывать свежие патчсеты. А ещё лучше и версии rdbms свежие. В свежих версиях есть новые баги, но их могут пофиксить и включить фикс в следующий патчсет, тогда как для 11.2.0.4 новых патчсетов уже не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 02:13 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Alexander Anokhin Для 11.2.0.4 это ... Things to Consider to Avoid Poor Performance or Wrong Results on 11.2.0.4 (Doc ID 1645862.1) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 02:41 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
xtender а вообще, в любом случае, лучше переписать эту хрень, чем упорно заниматься "мистикой" Мысль здравая, но вьюха которую нужно переписать принадлежит другой команде. И нужно будет писать им официальное письмо с объяснением того, почему их вьюха неправильно работает. И сейчас это письмо будет выглядеть как-то не очень - "я подозреваю что есть какой-то оракл баг, не знаю какой, но на всякий случай потратьте время и перепишите". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:15 |
|
Оракл путает местами подзапросы
|
|||
---|---|---|---|
#18+
Valergrad И сейчас это письмо будет выглядеть как-то не очень - "я подозреваю что есть какой-то оракл баг, не знаю какой, но на всякий случай потратьте время и перепишите". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:33 |
|
|
start [/forum/topic.php?fid=52&fpage=50&tid=1881416]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 26ms |
total: | 168ms |
0 / 0 |