powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / А правда что в Oracle использовать JOIN - моветон?
25 сообщений из 55, страница 1 из 3
А правда что в Oracle использовать JOIN - моветон?
    #39365612
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начальник говорит, что нужно писать всегда через запятую соединения, что бы другим программистам легче читать было.
Почему? Не с проста сделали же INNER JOIN, LEFT JOIN?
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365617
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет,

по срачам соскучился, дедушка?
попроси шефа фулл аутер через (+) написать
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365618
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-ПапыхтетНачальник говорит, что нужно писать всегда через запятую соединения, что бы другим программистам легче читать было.
Почему? Не с проста сделали же INNER JOIN, LEFT JOIN? просто начальник олдскульный попался. Раньше в оракл не было join, а когда появились иногда глючили. Сейчас это уже мало актуально
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365620
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле не было join через ansi syntax
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365627
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxДед-Папыхтет,

по срачам соскучился, дедушка?
попроси шефа фулл аутер через (+) написать
Причем тут срачи? Я понимаю есть древний синтакис (+) ,
Позже появились JOIN

Какой смысл упорываться начальнику с отстаиванием старого синтаксиса, обосновывая тем, что все тру ораклоиды так пишут?
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365639
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-ПапыхтетandreymxДед-Папыхтет,

по срачам соскучился, дедушка?
попроси шефа фулл аутер через (+) написать
Причем тут срачи? Я понимаю есть древний синтакис (+) ,
Позже появились JOIN

Какой смысл упорываться начальнику с отстаиванием старого синтаксиса, обосновывая тем, что все тру ораклоиды так пишут?стиль в группе разработки должен быть единым
ты ж как опытный ит-дедушка должен понимать
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365646
Timur Akhmadeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinДед-ПапыхтетНачальник говорит, что нужно писать всегда через запятую соединения, что бы другим программистам легче читать было.
Почему? Не с проста сделали же INNER JOIN, LEFT JOIN? просто начальник олдскульный попался. Раньше в оракл не было join, а когда появились иногда глючили. Сейчас это уже мало актуально
Настолько "мало", что упоминается в свежем документе :
The only way to execute such a query was to translate it into ANSI syntax. However, the implementation of such ANSI syntax results in a lateral view6 being used. Oracle is unable to merge a lateral view, so the optimizer’s plan choices are limited in terms of join order and join method, which may result in a sub-optimal plan.
Багов ANSI пофиксили в:
11.2.0.2: 22
11.2.0.3: 14
11.2.0.4: 26
12.1.0.2: 14

Дед, слушайся начальника, исключение - full outer join.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365651
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timur Akhmadeev,

Спасибо, гуру. Сегодняшний день я прожил не зря.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365655
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timur AkhmadeevБагов ANSI пофиксили воднобокая статистика.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365664
Glays
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365674
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timur AkhmadeevAlexander Ryndinпропущено...
просто начальник олдскульный попался. Раньше в оракл не было join, а когда появились иногда глючили. Сейчас это уже мало актуально
Настолько "мало", что упоминается в свежем документе :
The only way to execute such a query was to translate it into ANSI syntax. However, the implementation of such ANSI syntax results in a lateral view6 being used. Oracle is unable to merge a lateral view, so the optimizer’s plan choices are limited in terms of join order and join method, which may result in a sub-optimal plan.
Багов ANSI пофиксили в:
11.2.0.2: 22
11.2.0.3: 14
11.2.0.4: 26
12.1.0.2: 141. Во-первых от версии к версии уменьшается число случаев когда ansi конвертируется в lateral view (которая non mergeable). То, что раньше порождало lateral, сейчас может генерировать inline view или без view вообще.
2. Во-вторых "another was to execute such a query" это вручную переписать через inline view.
3. В-тетьих непонятно почему выбрано именно это ограничение, более того, если уж сравнивать то имеет смысл последнюю версию, либо делать оговорки про изменения. С таким же успехом можно было выбрать, что предикат внешнего соединения до 12с не мог содержать скаляров.
4. Native syntax имеет баги и на 12с, и чо?
Timur AkhmadeevДед, слушайся начальника, исключение - full outer join.Тебе не мешало бы хорошенько подтянуть матчасть.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365686
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет,
скорее в одном запросе не должно быть смешения ораклового и анси синтаксиса . в большинстве запросов этого достаточно. плюс у многих ораклоидов сложилась за много лет проф деформация, что оракловый синтаксис вызывает меньше багов. но это естественно когда много лет подряд переписывая из анси в оракловый синтаксис запросы, чаще всего, перестают кидаться ошибками и работают на порядки быстрее. поэтому сейчас признать что запросы будут идентичны очень сложно.
Но в общем и целом я поддерживаю твоего начальника. только считаю что это должно быть оформлено как стандарт для всей команды. только тогда будет ценно.
и очередной раз исключительно имхо: full outer join - это ошибка архитектуры которую надо исправлять на ранних стадиях. потом будет больнее.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365688
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING.Тру ораклоиды пишут на смеси синтаксисов, чтоб ни нашим не вашим.
И у ребятишек с категоричностью высказываний рвало шаблон. :)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> with
  2  t1 as (select 0 id from dual union all select 1 from dual),
  3  t2 as (select 0 id from dual union all select 2 from dual)
  4  select t1.id id_1, t2.id id_2
  5  from t1
  6  join t2 on t1.id = t2.id(+);

      ID_1       ID_2
---------- ----------
         0          0
         1

Если же дело касается внутренних соединений, то все таблицы можно перечислить через cross join, а предикаты запихнуть в where.
Любители native syntax и свалки предикатов в where должны оценить.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365691
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop1. Во-первых от версии к версии уменьшается число случаев когда ansi конвертируется в lateral view (которая non mergeable). То, что раньше порождало lateral, сейчас может генерировать inline view или без view вообще.
2. Во-вторых "another was to execute such a query" это вручную переписать через inline view.
3. В-тетьих непонятно почему выбрано именно это ограничение, более того, если уж сравнивать то имеет смысл последнюю версию, либо делать оговорки про изменения. С таким же успехом можно было выбрать, что предикат внешнего соединения до 12с не мог содержать скаляров.
4. Native syntax имеет баги и на 12с, и чо?
Timur AkhmadeevДед, слушайся начальника, исключение - full outer join.Тебе не мешало бы хорошенько подтянуть матчасть.
К чему это все?
Ты как будто отговариваешь людей покупать иностранные машины и приобретать жигули.
авторУ них и качество краски повысили, зеркала увеличили и в последней версии даже зазоры в дверных проемах уменьшили так, что мыши не пролезают.
А то, что ломаются постоянно, так смотри, у феррари багажник такой маленький, что картошка не помещается.
Тимур прав, до сих пор анси - бажная реализация.
И то, что она становится все лучше и лучше не отменяет потенциальной взрывоопасности.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365702
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintfull outer join - это ошибка архитектуры которую надо исправлять на ранних стадиях. потом будет больнее.Тебе не надоело как попугаю повторять свои заблуждения. Перечитай еще разок 19249657 .
Для полноты картины, в OLTP full join может понадобиться разве что для отчетности, в хранилищах и для отчетности, и для ETL и для прочего.
Это не отменяет того факта, что такие вещи как full join или distinct часто говнокодеры используют не по назначению.

Опять же, категоричность высказываний, как это часто бывает, выдает незнание и однобокий взгляд.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365717
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,
твои примеры как раз и являются для меня исключениями подтверждающими правило. но специально для тебя напишу что full outer join в 99% случаях используется неверно. теперь с категоричностью полегчало? или дальше копья будем ломать?)
ну хочешь я еще могу написать что model так же как match recognize желательно не использовать вообще. Такие конструкции можешь использовать ты, и люди очень глубоко разбирающиеся в архитектуре люди, но 99% разработчиков оракл даже не знают про преобразования full outer join, lateral преобразования или микрооткаты merge. поэтому такая категоричность имхо вполне допустима для людей которые задают вопросы. потому что если ты дошел до уровня когда не хочется задавать вопросов - ответы ты найдешь и сам. и советчики тебе при этом не особо нужны)
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365721
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|К чему это все?Cлегка раздражает безапелляционный тон.
AlexFF__|Ты как будто отговариваешь людей покупать иностранные машины и приобретать жигули.Можно подробнее объяснить аналогию?
Говоря про возможности, ansi позволяет достичь всего того, что позволяет native и даже более, но не наоборот.
С появлением lateral/outer apply в 12с границы еще более стерты.
Единственное в чем ANSI уступает - в возможностях хинтований. Порождаемые ansi/lateral views делают хинты невалидными.

Как-то Сергей Арсеньев тут заявил, что "ансишный синтаксис это синтаксический сахар". С этим можно согласиться.
Тогда и аналогию можно провести ansi vs native как c vs assembler.
И далее, приходит некто и категорично заявляет, что Си использовать не стоит поскольку предыдущие версии компиляторов криво транслировали в исполняемый код.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365724
Timur Akhmadeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Timur AkhmadeevБагов ANSI пофиксили воднобокая статистика.
Какая есть.
dbms_photoshopот версии к версии уменьшается число случаев когда ansi конвертируется в lateral view (которая non mergeable). То, что раньше порождало lateral, сейчас может генерировать inline view или без view вообще.
Это хорошо, примеры есть?
dbms_photoshop"another was to execute such a query" это вручную переписать через inline view.
Не понял, давай пример.
dbms_photoshopнепонятно почему выбрано именно это ограничение, более того, если уж сравнивать то имеет смысл последнюю версию, либо делать оговорки про изменения. С таким же успехом можно было выбрать, что предикат внешнего соединения до 12с не мог содержать скаляров.
Аргмент не ясен. Ссылки, примеры, желательно что-нибудь без многобукв.
dbms_photoshopNative syntax имеет баги и на 12с, и чо?
Дополнительные баги ANSI меня не радуют.
dbms_photoshopТебе не мешало бы хорошенько подтянуть матчасть.
Возможно. А тебе - вести аргументированно техническую дискуссию. Я привел 2 примера (оба - данные от вендора), которые поясняют, почему я не люблю ANSI синтаксис. В ответ ни одного примера или ссылки.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365741
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintdbms_photoshop,
твои примеры как раз и являются для меня исключениями подтверждающими правило. но специально для тебя напишу что full outer join в 99% случаях используется неверно. теперь с категоричностью полегчало? или дальше копья будем ломать?)
ну хочешь я еще могу написать что model так же как match recognize желательно не использовать вообще. Такие конструкции можешь использовать ты, и люди очень глубоко разбирающиеся в архитектуре люди, но 99% разработчиков оракл даже не знают про преобразования full outer join, lateral преобразования или микрооткаты merge. поэтому такая категоричность имхо вполне допустима для людей которые задают вопросы. потому что если ты дошел до уровня когда не хочется задавать вопросов - ответы ты найдешь и сам. и советчики тебе при этом не особо нужны)Я соглашусь, что model и recursive subquery factoring желательно не использовать вообще.
Вызывали некоторое недоумение некоторые последние статьи Кайта где он писал про "прекрасные решения на model/rec with". Видимо ему действительно пора было на пенсию.
Удивляет когда на этом форуме SY публикует какие-то решения на rec with когда решается c помощью connect by и прочие overkill.
Забавно что тот же SY и прочие продолжают навязывать агрегацию строк через XML, которая есть костыль с хреновым перфомансом.

Вообще в оракловом компьюнити многие люди, которые имеют некоторый вес продолжают пиаирть какие-то говно подходы. И тех, кто адекватно может оценить просто мизерный процент. Кстати, зачаствую они и на форумах не сидят. Так что любезный товарищ "бурлесонщина" из другого топика частично прав: общий уровень низкий, процент тупости растет и говно-решения упорно продвигаются.
А умные люди развивают свое дело, занимаются семьей, спортом, туризмом... чем угодно. А не пасутся в коментариях к блогам Подера и Льюиса.
Это, конечно, не повод всех назывть "лохи позорные" или как там было.

В вот match recognize - ВЕЩЬ! Я обо всем этом написал 100+ страниц, скоро выложу.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365745
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timur Akhmadeevкоторые поясняют, почему я не люблю ANSI синтаксисМожно еще раз разжевать плиз.
А то в примере вроде как про ограничение native а ты не любишь ansi.
Я правильно понял, что нелюбовь связана с тем что ansi может порождать lateral?

У тебя в профиле почта рабочая? Могу скинуть аргументацию в деталях. Но там много букв. Хоть я и старался структурировать получше.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365748
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,
еще раз. 99% просто тебя не поймут. 1% который поймет... им это чаще всего не надо. а ты привязался к категоричности. я понимаю что ты и элик и многие другие перфекционисты хотят чтобы все было на 100% быстро максимально правильно и супер структурированно и все всё понимали и разбирались. к сожалению сказки не будет)
насчет match recognize, я провел за изучением 15 минут. осознал что делает сделал пару примеров и .... забил. у меня 11.2.0.4 и 12 предвидеться еще не скоро. зачем тратить свое время на то чем в принципе сможешь воспользоваться в далеком будущем я не понимаю. тем более есть прекрасные способы на нейтив написать. хотя с удовольствием почитаю если напишешь и сравнишь по производительности с нейтив запросами. отложу в копилку ссылку и буду дальше спокойно работать)
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365773
Фотография Takurava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxДед-Папыхтет,
по срачам соскучился, дедушка?
Срач удался на славу :)
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365794
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TakuravaandreymxДед-Папыхтет,
по срачам соскучился, дедушка?
Срач удался на славу :)
кому не лениво, тот может посмотреть историю побед над багами в разрезе статистики повторения
(события конкретной победы) в разных версиях сервера
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365817
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

А есть история появления багов, вызванных победами над багами? Я уж не говорю, про регулярно возвращающиеся баги между чётными и нечётными версиями (разные команды индусов делают?).
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365834
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,
версия про каждый раз новую команду которая вариться в этой куче Гкода удовлетворит?)

Takurava,
это мы мило побеседовали. уже все давно знают мнения друг друга. если хочется что-то больше - проще написать на почту, что я думаю тимур и фотошоп и осуществили) ну не десятый же раз обсуждаем)
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / А правда что в Oracle использовать JOIN - моветон?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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