Гость
Форумы / Informix [игнор отключен] [закрыт для гостей] / Full join работает как left / 11 сообщений из 11, страница 1 из 1
22.09.2015, 11:37
    #39058142
Batsall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
Здравствуйте.

Версия 11.5. Подскажите, пожалуйста, новечку в информиксе. Пишу вроде хорошие запрос с full join, на простых примерах все отлично. Но стоило мне его усложнить и он стал себя вести как left. Вплоть до того, что меняю его на right и записей становится больше (вот так я данные подобрал). Есть какие-нибудь общие практики для борьбы с подобным поведением? Как я понимаю происходит что-то типа проталкивания предиката?
...
Рейтинг: 0 / 0
22.09.2015, 11:55
    #39058163
Batsall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
Batsall,

Посмотрел план - реально в запросе full, а в плане NESTED LOOP JOIN(LEFT OUTER JOIN). Подскажите, что с ним делать?..
...
Рейтинг: 0 / 0
22.09.2015, 22:05
    #39058882
Full join работает как left
Может таки сделать над собой усилие и опубликовать тут запрос и его план ?
...
Рейтинг: 0 / 0
23.09.2015, 11:19
    #39059222
Batsall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
Яковлев Павел,

Спасибо за ответ, но это бесполезно. Тут явный косяк оптимизатора. Поменял местами подзапросы, участвующие в фул-джойне - и ситуация исправилась. Переписал условие джойна на полностью тождественное, но написанное по другому - ситуация тоже исправилась.
...
Рейтинг: 0 / 0
23.09.2015, 22:02
    #39059877
Full join работает как left
Если даже всё действительно и так, то как минимум интересно было бы посмотреть на "кривой" и "прямой" запросы и их планы.

Вдруг всё не так как кажется.

Или кто-то мучается с подобным и это ему поможет. Вы же хотели что вам помогли - пострудничайте в обратную сторону.
...
Рейтинг: 0 / 0
24.09.2015, 16:41
    #39060529
Batsall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
Яковлев Павел,

полный текст запроса приводить смысла не вижу, он большой, страшный и к сути дела не относится. Но конструкция такая :
Код: plsql
1.
2.
3.
4.
5.
6.
select nvl(a.id, b.id) id, nvl(a.id1, b.id1) id1, nvl(a.id2, b.id2) id2, ...
from 
       (select id, id1, id2, ... from table1 join ....) a
full join 
       (select id, id1, id2, ... from table2 join ....) b
on a.id = b.id and a.id1 = b.id1 and a.id2 = b.id2 



Так вот, в чистом виде в плане, как я уже говорил NESTED LOOP JOIN(LEFT OUTER JOIN). Меняю местами подзапросы во from - в плане появляется full join в две фазы. Меняю условие on на
Код: plsql
1.
on a.id||a.id1||a.id2 = b.id||b.id1||b.id2

и тоже full join. Причем когда у меня появился пятый и шестой id в условиях объекдинения, все скатилось обратно в left.

У меня почти 10 лет опыта разработки под оракл, так что дурацких ошибок в запросах я уже давно не делаю, тут четкая ошибка оптимизатора. Я лишь хотел спросить у гуру информикса, как вы боретесь с подобным поведением.
...
Рейтинг: 0 / 0
28.09.2015, 11:46
    #39062976
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
Batsall,

Я не отношу себя к гуру, но из личного опыта:

Были случаи, когда запрос работал не так как должен. Помогал сбор статистики по таблицам. Мы собирали в режиме high resolution.
Правда было это все аж на семерке.

Советую перейти на 12.1. На 11.5 были некоторые непонятки, после перехода на 11.7 другие вылазили. С 12.10 вопросов пока (тук-тук-тук) нет.
...
Рейтинг: 0 / 0
07.10.2015, 06:48
    #39070048
DrGonzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
BatsallЯ лишь хотел спросить у гуру информикса, как вы боретесь с подобным поведением.

Если есть поддержка, есть смысл открыть PMR и попросить идентифицировать дефект. Может статься, что проблема исправлена в последнем фикс-паке 11.50-ветки.
...
Рейтинг: 0 / 0
07.10.2015, 16:22
    #39070942
Batsall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
DrGonzo,

Поддержка говорит: переходите на 11.7. При этом почему-то сильно не рекомендует 12.1.
...
Рейтинг: 0 / 0
08.10.2015, 16:52
    #39072187
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
Batsall,

Странно.

Мы в начале года при переходе с 7.31 на 12.1 очень плотно работали техподдержкой IBM, но ни разу ничего подобного не слышали.
...
Рейтинг: 0 / 0
09.10.2015, 08:40
    #39072554
DrGonzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Full join работает как left
BatsallDrGonzo,

Поддержка говорит: переходите на 11.7. При этом почему-то сильно не рекомендует 12.1.

Это в ответ на PMR про неработающий джоин? По моему опыту, поддержка рекомендует апгрейд только если есть уверенность, что это решит проблему и больше нет других вариантов. Если по каким-то причинам апгрейд для вас в данный момент невозможен, есть все основания требовать, чтобы IBM эту проблему так или иначе решил, т.к. 11.50 все еще поддерживаемая версия, даже если фикс паки перестали выходить.

Если вы не на последнем фикс паке, попробуйте 11.50.FC9W3 - может там эта проблема уже решена.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Full join работает как left / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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