powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / А правда что в Oracle использовать JOIN - моветон?
55 сообщений из 55, показаны все 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
А правда что в Oracle использовать JOIN - моветон?
    #39365845
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintdbms_photoshop,
у меня 11.2.0.4 и 12 предвидеться еще не скоро. зачем тратить свое время на то чем в принципе сможешь воспользоваться в далеком будущем я не понимаю. тем более есть прекрасные способы на нейтив написать. хотя с удовольствием почитаю если напишешь и сравнишь по производительности с нейтив запросами. отложу в копилку ссылку и буду дальше спокойно работать)

Будете дополнительные деньги платить за саппорт в мае 17го? Или у вас трофейный оракл?
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365853
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi,
как там SAP договорится с Oracle и потом даст нам лицензии на тот продукт которым я занимаюсь, по моему, даже сам SAP еще не знает) предпочитаю чтобы об этом голова болела у тех к ого должна)
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365890
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envorawish,

А есть история появления багов, вызванных победами над багами? Я уж не говорю, про регулярно возвращающиеся баги между чётными и нечётными версиями (разные команды индусов делают?).
я лишь про регулярно возвращающиеся баги , которые когда-то приходится "заново" побеждать (как вариант - плюнуть..)
лично у меня впечатление сложилось, что анси-зависимые баги возвращаются чаще среднего
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365910
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,
а я думал? что ты еще веришь в победу индусов над "dual+grouping sets" ))))
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365921
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintorawish,
а я думал? что ты еще веришь в победу индусов над "dual+grouping sets" ))))
нэт.
я выбрал вариант плюнуть ;)
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365925
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,
как я тебя понимаю...
Код: plsql
1.
2.
3.
4.
5.
Юноша спрашивает древнего горца.
- Скажите, уважаемый! Как Вам удалось прожить так долго?
- Знаешь, я никогда в жизни ни с кем не спорил.
- Да не может быть!!!!
- Ну не может, так на может...


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

по срачам соскучился, дедушка?
попроси шефа фулл аутер через (+) написатьЧасто ли в реальной жизни требуется Full Outer Join?
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365940
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING.
Использование NATURAL JOIN нужно запрещать организационными методами.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39365941
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus,

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

partition by RIGHT OUTER JOIN через (+)?

.....
stax
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366017
Glays
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*PlusGlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING.
Использование NATURAL JOIN нужно запрещать организационными методами.
Я как-то решил пошутить над новым сотрудником и на просьбу помочь с запросом дал пример с натурал джойном. Предупредил, что нужно нормально переписать.
А он взял и закоммитил.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366041
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*PlusandreymxДед-Папыхтет,

по срачам соскучился, дедушка?
попроси шефа фулл аутер через (+) написатьЧасто ли в реальной жизни требуется Full Outer Join?редко
у меня во всем расчете себестоимости всего 23 раза нашлось
но там оно точно надо - для сравнения данных в двух распределенных системах, например
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366050
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glays,

Ну это еще по доброму.
Я как-то лет 10 назад работал в одной не софтварной конторе, в которой программистов было меньше чем пальцев на руках и у всех были админские привилегии в локальной сети.
Когда я уже уволился - пришел новый чел, который не особо нравился некоторым и они периодически ребутили его комп удаленно по локальной сети командой shutdown с указанием веселых сообщений, таймаута и флага force.
Пока не вытравили беднягу.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366227
Хохлов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,
вы там разрулили недопонимания? ощущение что кто-то съехал...
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366274
ora_beginer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkomyagkii_newbi,

Вообще по-моему продлили до 2020
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366324
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-ПапыхтетНачальник говорит, что нужно писать всегда через запятую соединения, что бы другим программистам легче читать было.
Почему? Не с проста сделали же INNER JOIN, LEFT JOIN?

Какое может быть дело настоящему Папыхтету до того, что будут читать "другие программисты"?
А если он еще и Дед, так десять куч на тех программистов, квадратно-гнездовым способом.
Для истинного Деда - единственный "другой программист" - это он сам.

Но писать как-то надо. И, в качестве "инженерного подхода", некоторыми широко известными знатоками как надо писать, предлагается писать "как все".

Просто в каждом конкретном случае требует уточнения, кто это такие, все эти "все".

И это точно не твой начальник, если только ты не работаешь в подразделении Oracle над одним из их business application.
Здесь "все" - это все и произвольно взятые писатели конкретно Oracle business applications в любом их виде.

Если ты видишь там хоть один ansi left join - пиши в схожих ситуациях не задумываясь,
и не беспокоясь о разрушении памяти, неправильном результате или неэффективном плане выполнения.
Не потому, что это правильно, и память не будет разрушена, а бывший правильным результат вдруг не станет неправильным при выходе следующей версии, а потому что работоспособность (и производительность) всех приложений будет автоматически поддерживаться и улучшаться, если они написаны способом, неотличимым от манеры писателей их собственных приложений.
Ну и, при таком инженерном подходе, на следующую версию переходи не ранее того момента, когда под нее будут сертифицированы их собственные бизнес-приложения.
К этому моменту, все для них самих критичные разрухи как-нибудь, да подопрут.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366356
Банальный outer к outer уже вызывает сложности восприятия мешанины в where и, как следствие, шансы допустить ошибку. По сравнению с багами ansi куда более вероятную.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366484
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopЯ соглашусь, что model и recursive subquery factoring желательно не использовать вообще.
Вызывали некоторое недоумение некоторые последние статьи Кайта где он писал про "прекрасные решения на model/rec with". Видимо ему действительно пора было на пенсию.
Удивляет когда на этом форуме SY публикует какие-то решения на rec with когда решается c помощью connect by и прочие overkill.
Забавно что тот же SY и прочие продолжают навязывать агрегацию строк через XML, которая есть костыль с хреновым перфомансом.

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

В вот match recognize - ВЕЩЬ! Я обо всем этом написал 100+ страниц, скоро выложу.
Коллега, вы просто разрыв шаблона вызываете. Model использую давно (редко, да метко). Никаких проблем.
А вот на match recognize с первого раза вляпался в баг, локализовывал который целый день.
Но при этом Вы заявляете, что model (со времен 10.2?) - кака, а match recognize (свистоперделка из 12.1) - ми-ми-ми и повод для 100-страничного эпоса. Не странно ли?
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366487
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*PlusGlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING.
Использование NATURAL JOIN нужно запрещать организационными методами.
На входе табличку повесить: "Невероятно, но факт: натуралы НЕ используют Natural Join"
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366514
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RA\/ENSQL*Plusпропущено...

Использование NATURAL JOIN нужно запрещать организационными методами.
На входе табличку повесить: "Невероятно, но факт: натуралы НЕ используют Natural Join"
Это фейк.
Настоящие натуралы не используют SQL .

Гордо сказать, что я не использую natural join в SQL , это объявить себя мальчиком, а одеться девочкой.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366699
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RA\/ENdbms_photoshopЯ соглашусь, что model и recursive subquery factoring желательно не использовать вообще.
Вызывали некоторое недоумение некоторые последние статьи Кайта где он писал про "прекрасные решения на model/rec with". Видимо ему действительно пора было на пенсию.
Удивляет когда на этом форуме SY публикует какие-то решения на rec with когда решается c помощью connect by и прочие overkill.
Забавно что тот же SY и прочие продолжают навязывать агрегацию строк через XML, которая есть костыль с хреновым перфомансом.

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

В вот match recognize - ВЕЩЬ! Я обо всем этом написал 100+ страниц, скоро выложу.
Коллега, вы просто разрыв шаблона вызываете. Model использую давно (редко, да метко). Никаких проблем.
А вот на match recognize с первого раза вляпался в баг, локализовывал который целый день.
Но при этом Вы заявляете, что model (со времен 10.2?) - кака, а match recognize (свистоперделка из 12.1) - ми-ми-ми и повод для 100-страничного эпоса. Не странно ли?В эпосе намного больше страниц посвящено модели чем паттерн матчингу, не смотря на озвучиваемую мной ее бесполезность.
Я был бы премного благодарен, если вам есть что сказать по поводу этого challenge .
По поводу альтернативных случаев не очень интересно - например, когда на наборе, скажем, 50к строк можно натянуть модельку и вся логика умещается в пару строк, тогда как на PL/SQL пришлось бы создавать функцию, тип и писать много букв, а перфоманс сопоставимый ибо объемы детские.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366718
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cамые суровые баги издревна были с union в подзапросах.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366776
SQL*PlusandreymxДед-Папыхтет,

по срачам соскучился, дедушка?
попроси шефа фулл аутер через (+) написатьЧасто ли в реальной жизни требуется Full Outer Join?

Например, когда требуется вычислить разницу в хранящихся данных (одна условная таблица/набор) и тех же данных, получаемых "на лету" (другая условная таблица/набор). Не думаю, что это архи-редкость..
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366791
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Cамые суровые баги издревна были с union в подзапросах.в 9.2-й версии нередко пропадал второй-третий union из with.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366795
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
иквалайзерSQL*Plusпропущено...
Часто ли в реальной жизни требуется Full Outer Join?

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


Например, когда требуется вычислить разницу в хранящихся данных (одна условная таблица/набор) и тех же данных, получаемых "на лету" (другая условная таблица/набор). Не думаю, что это архи-редкость..матёрому старперу для этого достаточно пары-тройки юнионов
union без базара быстрее чем full join
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366898
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxиквалайзерпропущено...


Например, когда требуется вычислить разницу в хранящихся данных (одна условная таблица/набор) и тех же данных, получаемых "на лету" (другая условная таблица/набор). Не думаю, что это архи-редкость..матёрому старперу для этого достаточно пары-тройки юнионовЛюбители нетрадицинных подходов вполне могут реализовать full join и без ansi и без union.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39366941
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopВ эпосе намного больше страниц посвящено модели чем паттерн матчингу, не смотря на озвучиваемую мной ее бесполезность. А можно поглядеть уже?
dbms_photoshopЯ был бы премного благодарен, если вам есть что сказать по поводу этого challenge .
По поводу альтернативных случаев не очень интересно - например, когда на наборе, скажем, 50к строк можно натянуть модельку и вся логика умещается в пару строк, тогда как на PL/SQL пришлось бы создавать функцию, тип и писать много букв, а перфоманс сопоставимый ибо объемы детские.
Challenge сильно загадочный - очевидно, что для любого алгоритма, предусматривающего возможность двунаправленной навигации по датасету, можно разработать более эффективное решение на императивном PLSQL, чем на декларативном MODEL (это и самого SQL касается, в общем, если рассматривать его как фреймворк для задачи "прочитай мне с диска набор данных и сделай над ними group by"). Т.о. Вы предлагаете опровергнуть заведомо истинное утверждение.
Декларативный подход MODEL дает плюсы в том, что для его использования и отладки не надо иметь прав на создание объектов, т.е. их можно гонять на продуктиве, его быстрее разрабатывать и он понятнее широкому кругу лиц (по сравнению с PL/SQL).
Высокопроизводительный алгоритм на PL/SQL у меня навевает мысль о том, что кто-то влепил его не в то место, где он должен быть - масштабирование сложное, и ну очень дорогое. В сфере хранилищ проще оставить на базу подготовку датасета для обработки, а обработку - вынести на сервер приложений. В сфере OLTP алгоритм с MODEL на 1M+ строк вызывает подозрение в ограничениях проекта, ведущих к извращениям. Я когда-то Excel парсил в OLTP-базе на 8-ке, но это не потому, что извращениец, а потому, что ресурсов на промышленное решение на Delphi не было (а для предобработки изучил VBA).
Так что абстрактно сравнивать эти два подхода, в отрыве от конкретной задачи, не имеет смысла.
...
Рейтинг: 0 / 0
А правда что в Oracle использовать JOIN - моветон?
    #39367293
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RA\/ENdbms_photoshopВ эпосе намного больше страниц посвящено модели чем паттерн матчингу, не смотря на озвучиваемую мной ее бесполезность. А можно поглядеть уже?Можно если написать в почту в профиле.
RA\/ENdbms_photoshopЯ был бы премного благодарен, если вам есть что сказать по поводу этого challenge .
По поводу альтернативных случаев не очень интересно - например, когда на наборе, скажем, 50к строк можно натянуть модельку и вся логика умещается в пару строк, тогда как на PL/SQL пришлось бы создавать функцию, тип и писать много букв, а перфоманс сопоставимый ибо объемы детские.
Challenge сильно загадочный - очевидно, что для любого алгоритма, предусматривающего возможность двунаправленной навигации по датасету, можно разработать более эффективное решение на императивном PLSQL, чем на декларативном MODEL (это и самого SQL касается, в общем, если рассматривать его как фреймворк для задачи "прочитай мне с диска набор данных и сделай над ними group by"). Т.о. Вы предлагаете опровергнуть заведомо истинное утверждение.
Декларативный подход MODEL дает плюсы в том, что для его использования и отладки не надо иметь прав на создание объектов, т.е. их можно гонять на продуктиве, его быстрее разрабатывать и он понятнее широкому кругу лиц (по сравнению с PL/SQL).
Высокопроизводительный алгоритм на PL/SQL у меня навевает мысль о том, что кто-то влепил его не в то место, где он должен быть - масштабирование сложное, и ну очень дорогое. В сфере хранилищ проще оставить на базу подготовку датасета для обработки, а обработку - вынести на сервер приложений. В сфере OLTP алгоритм с MODEL на 1M+ строк вызывает подозрение в ограничениях проекта, ведущих к извращениям. Я когда-то Excel парсил в OLTP-базе на 8-ке, но это не потому, что извращениец, а потому, что ресурсов на промышленное решение на Delphi не было (а для предобработки изучил VBA).
Так что абстрактно сравнивать эти два подхода, в отрыве от конкретной задачи, не имеет смысла.Challenge предельно конкретный и точный, никакой абстрактности.
Ни о каких особенностях алгоритмов речь не идет, включая всякие двунаправленные навигации.
Цель проста: либо демонстрируется конкретный пример задачи с решением на model для 1М строк для которого нет аналога на PL/SQL быстрее либо нет.
Для всех прочих возможностей SQL таких как joins, connect by, analytic/aggregate functions, pattern matching и проч такой пример можно предоставить.
И тем более не надо усложнять еще более и обсуждать, что все можно выгрузить в память на серваке и там колдовать с наборами данных на C.
Или даже вспоминать серверы приложений. Речь про базовые возможности Оракла для работы с данными - SQL and PL/SQL.

PS. На самом деле я могу показать, что даже для самого примитивного примера serial модель начинает деградировать намного сильнее чем PL/SQL при увеличении объемов, а вот при использовании parallel + model partition by ситуация несколько лучше, но все равно модель уходит в лузеры после определенного рубежа.
В целом, думаю мы "on the same page", в эпосе все описано детальнее. Challenge используется для легкого троллинга.
На скуле и не на скуле я использую абсолютно разный стиль подачи информации. :))
...
Рейтинг: 0 / 0
55 сообщений из 55, показаны все 3 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / А правда что в Oracle использовать JOIN - моветон?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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