|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
У меня как-то странно ведет себя оператор MINUS. Есть две таблички одинаковые по структуре, именам и порядку полей. Без индексов. В каждой примерно 3 млн записей я пишу: Код: plsql 1. 2. 3.
Получаю непустой результат тогда я решаю сократить выборку, беру из результата некое значение ну скажем поля b и пишу: Код: plsql 1. 2. 3.
и получаю пустой результат. Тогда я беру и делаю отдельные выборки по каждой таблице select a,b,c,d from tab1 where b = 123 и select a,b,c,d from tab2 where b = 123 и сравниваю их глазами. Записи и их количество одинаковые. Я чего-то не понимаю, видимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:44 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
Maxifly У меня как-то странно ведет себя оператор MINUS. Есть две таблички одинаковые по структуре, именам и порядку полей. Без индексов. В каждой примерно 3 млн записей я пишу: Код: plsql 1. 2. 3.
Получаю непустой результат тогда я решаю сократить выборку, беру из результата некое значение ну скажем поля b и пишу: Код: plsql 1. 2. 3.
и получаю пустой результат. Тогда я беру и делаю отдельные выборки по каждой таблице select a,b,c,d from tab1 where b = 123 и select a,b,c,d from tab2 where b = 123 и сравниваю их глазами. Записи и их количество одинаковые. Я чего-то не понимаю, видимо. в непустом результате есть строки с b = 123? ps select rowid,t.* from tab1/2 t where (a,b,c,d) in ( select a,b,c,d from tab1 minus select a,b,c,d from tab2 ) а дальше разборки по ровиду зыы смотреть план, мож действительно жучок завелся ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:10 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
Выполните в SQL*Plus Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
и покажите результат ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:12 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
Maxifly и получаю пустой результат. Maxifly Записи и их количество одинаковые. ну так и должно быть ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:18 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
SQL*Plus, не смогу результат показать. Это у заказчика на площадке. Что мне хоть искать? Расхождения в структуре таблиц и количество записей, которые MINUS посчитал за различные? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:18 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
SQL*Plus, Maxifly тогда я решаю сократить выборку, беру из результата некое значение ну скажем поля b и пишу: Код: plsql 1. 2. 3.
и получаю пустой результат. Тогда я беру и делаю отдельные выборки по каждой таблице select a,b,c,d from tab1 where b = 123 и select a,b,c,d from tab2 where b = 123 и сравниваю их глазами. Записи и их количество одинаковые . Я чего-то не понимаю, видимо. запутали меня имхо, так и должно быть для 123 ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:18 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
[quot Stax#22327608] Maxifly У меня как-то странно ведет себя оператор MINUS. в непустом результате есть строки с b = 123? ..... stax Ну да. Это-то и удивляет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:22 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
Maxifly SQL*Plus, не смогу результат показать. Это у заказчика на площадке. Что мне хоть искать? Расхождения в структуре таблиц и количество записей, которые MINUS посчитал за различные? проделайте "у заказчика на площадке" Проверьте структуру таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:24 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
[quot Maxifly#22327616] Stax пропущено... Ну да. Это-то и удивляет сморите на пробелы / округления аля xx8 и xx7.9999999999999999999999999999 select dump(a) da,dump(b) db,dump(c) dc,dump(d) dd,a,b,c,d from tab1 minus select dump(a) da,dump(b) db,dump(c) dc,dump(d) dd,a,b,c,d from tab2 зы у меня такое бывало ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:33 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
"Глаза" - это ненадёжный способ сравнения. См. пример: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:38 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
SQL*Plus, Структура одинаковая. Там ситуация чуть сложнее, на самом деле выглядит, чем я тут описал. Данные из одной таблички перенесены по db_link-у на вторую БД и я их на месте сравниваю. Я уже на этой БД где сравниваю даже сделал копию копии и сравниваю уже их. И даже отсортировал данные при создании "копии копии" и сравниваю уже только одно поле с PK и MINUS все равно расхождение показывает PS: про Ваш пример с "глазами" знаю. Такого точно нет. Все текстовые поля varchar2 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:46 |
|
MINUS странное поведение
|
|||
---|---|---|---|
#18+
Maxifly SQL*Plus, Структура одинаковая. Там ситуация чуть сложнее, на самом деле выглядит, чем я тут описал. Данные из одной таблички перенесены по db_link-у на вторую БД и я их на месте сравниваю. Я уже на этой БД где сравниваю даже сделал копию копии и сравниваю уже их. И даже отсортировал данные при создании "копии копии" и сравниваю уже только одно поле с PK и MINUS все равно расхождение показывает PS: про Ваш пример с "глазами" знаю. Такого точно нет. Все текстовые поля varchar2 А я уверен, что угадал в чем ваша проблема. И против этой моей уверенности только ваши впечатления и думы, слова и фантазии. Сделайте то, что вам уже написали. Пока больше обсуждать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:18 |
|
|
start [/forum/topic.php?fid=52&msg=40073270&tid=1880161]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
150ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 249ms |
total: | 499ms |
0 / 0 |