powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Full join работает как left
11 сообщений из 11, страница 1 из 1
Full join работает как left
    #39058142
Batsall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

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

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

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

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

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

полный текст запроса приводить смысла не вижу, он большой, страшный и к сути дела не относится. Но конструкция такая :
Код: 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
Full join работает как left
    #39062976
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Batsall,

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

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

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

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

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

Странно.

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

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

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

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


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