|
|
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Начальник говорит, что нужно писать всегда через запятую соединения, что бы другим программистам легче читать было. Почему? Не с проста сделали же INNER JOIN, LEFT JOIN? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:29 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Дед-Папыхтет, по срачам соскучился, дедушка? попроси шефа фулл аутер через (+) написать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:34 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Дед-ПапыхтетНачальник говорит, что нужно писать всегда через запятую соединения, что бы другим программистам легче читать было. Почему? Не с проста сделали же INNER JOIN, LEFT JOIN? просто начальник олдскульный попался. Раньше в оракл не было join, а когда появились иногда глючили. Сейчас это уже мало актуально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:34 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
В смысле не было join через ansi syntax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:35 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
andreymxДед-Папыхтет, по срачам соскучился, дедушка? попроси шефа фулл аутер через (+) написать Причем тут срачи? Я понимаю есть древний синтакис (+) , Позже появились JOIN Какой смысл упорываться начальнику с отстаиванием старого синтаксиса, обосновывая тем, что все тру ораклоиды так пишут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:39 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Дед-ПапыхтетandreymxДед-Папыхтет, по срачам соскучился, дедушка? попроси шефа фулл аутер через (+) написать Причем тут срачи? Я понимаю есть древний синтакис (+) , Позже появились JOIN Какой смысл упорываться начальнику с отстаиванием старого синтаксиса, обосновывая тем, что все тру ораклоиды так пишут?стиль в группе разработки должен быть единым ты ж как опытный ит-дедушка должен понимать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:47 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:59 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Timur Akhmadeev, Спасибо, гуру. Сегодняшний день я прожил не зря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:11 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Timur AkhmadeevБагов ANSI пофиксили воднобокая статистика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:19 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Дед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:30 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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.Тебе не мешало бы хорошенько подтянуть матчасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:38 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Дед-Папыхтет, скорее в одном запросе не должно быть смешения ораклового и анси синтаксиса . в большинстве запросов этого достаточно. плюс у многих ораклоидов сложилась за много лет проф деформация, что оракловый синтаксис вызывает меньше багов. но это естественно когда много лет подряд переписывая из анси в оракловый синтаксис запросы, чаще всего, перестают кидаться ошибками и работают на порядки быстрее. поэтому сейчас признать что запросы будут идентичны очень сложно. Но в общем и целом я поддерживаю твоего начальника. только считаю что это должно быть оформлено как стандарт для всей команды. только тогда будет ценно. и очередной раз исключительно имхо: full outer join - это ошибка архитектуры которую надо исправлять на ранних стадиях. потом будет больнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:51 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
GlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING.Тру ораклоиды пишут на смеси синтаксисов, чтоб ни нашим не вашим. И у ребятишек с категоричностью высказываний рвало шаблон. :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Если же дело касается внутренних соединений, то все таблицы можно перечислить через cross join, а предикаты запихнуть в where. Любители native syntax и свалки предикатов в where должны оценить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:52 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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.Тебе не мешало бы хорошенько подтянуть матчасть. К чему это все? Ты как будто отговариваешь людей покупать иностранные машины и приобретать жигули. авторУ них и качество краски повысили, зеркала увеличили и в последней версии даже зазоры в дверных проемах уменьшили так, что мыши не пролезают. А то, что ломаются постоянно, так смотри, у феррари багажник такой маленький, что картошка не помещается. Тимур прав, до сих пор анси - бажная реализация. И то, что она становится все лучше и лучше не отменяет потенциальной взрывоопасности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:54 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Vintfull outer join - это ошибка архитектуры которую надо исправлять на ранних стадиях. потом будет больнее.Тебе не надоело как попугаю повторять свои заблуждения. Перечитай еще разок 19249657 . Для полноты картины, в OLTP full join может понадобиться разве что для отчетности, в хранилищах и для отчетности, и для ETL и для прочего. Это не отменяет того факта, что такие вещи как full join или distinct часто говнокодеры используют не по назначению. Опять же, категоричность высказываний, как это часто бывает, выдает незнание и однобокий взгляд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:58 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, твои примеры как раз и являются для меня исключениями подтверждающими правило. но специально для тебя напишу что full outer join в 99% случаях используется неверно. теперь с категоричностью полегчало? или дальше копья будем ломать?) ну хочешь я еще могу написать что model так же как match recognize желательно не использовать вообще. Такие конструкции можешь использовать ты, и люди очень глубоко разбирающиеся в архитектуре люди, но 99% разработчиков оракл даже не знают про преобразования full outer join, lateral преобразования или микрооткаты merge. поэтому такая категоричность имхо вполне допустима для людей которые задают вопросы. потому что если ты дошел до уровня когда не хочется задавать вопросов - ответы ты найдешь и сам. и советчики тебе при этом не особо нужны) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 14:08 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
AlexFF__|К чему это все?Cлегка раздражает безапелляционный тон. AlexFF__|Ты как будто отговариваешь людей покупать иностранные машины и приобретать жигули.Можно подробнее объяснить аналогию? Говоря про возможности, ansi позволяет достичь всего того, что позволяет native и даже более, но не наоборот. С появлением lateral/outer apply в 12с границы еще более стерты. Единственное в чем ANSI уступает - в возможностях хинтований. Порождаемые ansi/lateral views делают хинты невалидными. Как-то Сергей Арсеньев тут заявил, что "ансишный синтаксис это синтаксический сахар". С этим можно согласиться. Тогда и аналогию можно провести ansi vs native как c vs assembler. И далее, приходит некто и категорично заявляет, что Си использовать не стоит поскольку предыдущие версии компиляторов криво транслировали в исполняемый код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 14:09 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
-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 синтаксис. В ответ ни одного примера или ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 14:11 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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+ страниц, скоро выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 14:24 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Timur Akhmadeevкоторые поясняют, почему я не люблю ANSI синтаксисМожно еще раз разжевать плиз. А то в примере вроде как про ограничение native а ты не любишь ansi. Я правильно понял, что нелюбовь связана с тем что ansi может порождать lateral? У тебя в профиле почта рабочая? Могу скинуть аргументацию в деталях. Но там много букв. Хоть я и старался структурировать получше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 14:30 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, еще раз. 99% просто тебя не поймут. 1% который поймет... им это чаще всего не надо. а ты привязался к категоричности. я понимаю что ты и элик и многие другие перфекционисты хотят чтобы все было на 100% быстро максимально правильно и супер структурированно и все всё понимали и разбирались. к сожалению сказки не будет) насчет match recognize, я провел за изучением 15 минут. осознал что делает сделал пару примеров и .... забил. у меня 11.2.0.4 и 12 предвидеться еще не скоро. зачем тратить свое время на то чем в принципе сможешь воспользоваться в далеком будущем я не понимаю. тем более есть прекрасные способы на нейтив написать. хотя с удовольствием почитаю если напишешь и сравнишь по производительности с нейтив запросами. отложу в копилку ссылку и буду дальше спокойно работать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 14:32 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
andreymxДед-Папыхтет, по срачам соскучился, дедушка? Срач удался на славу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 14:49 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
TakuravaandreymxДед-Папыхтет, по срачам соскучился, дедушка? Срач удался на славу :) кому не лениво, тот может посмотреть историю побед над багами в разрезе статистики повторения (события конкретной победы) в разных версиях сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 15:11 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
orawish, А есть история появления багов, вызванных победами над багами? Я уж не говорю, про регулярно возвращающиеся баги между чётными и нечётными версиями (разные команды индусов делают?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 15:27 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
env, версия про каждый раз новую команду которая вариться в этой куче Гкода удовлетворит?) Takurava, это мы мило побеседовали. уже все давно знают мнения друг друга. если хочется что-то больше - проще написать на почту, что я думаю тимур и фотошоп и осуществили) ну не десятый же раз обсуждаем) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 15:39 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39365618&tid=1886809]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 534ms |

| 0 / 0 |
