|
|
|
А правда что в 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 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Vintdbms_photoshop, у меня 11.2.0.4 и 12 предвидеться еще не скоро. зачем тратить свое время на то чем в принципе сможешь воспользоваться в далеком будущем я не понимаю. тем более есть прекрасные способы на нейтив написать. хотя с удовольствием почитаю если напишешь и сравнишь по производительности с нейтив запросами. отложу в копилку ссылку и буду дальше спокойно работать) Будете дополнительные деньги платить за саппорт в мае 17го? Или у вас трофейный оракл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 15:47 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Melkomyagkii_newbi, как там SAP договорится с Oracle и потом даст нам лицензии на тот продукт которым я занимаюсь, по моему, даже сам SAP еще не знает) предпочитаю чтобы об этом голова болела у тех к ого должна) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 15:52 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
envorawish, А есть история появления багов, вызванных победами над багами? Я уж не говорю, про регулярно возвращающиеся баги между чётными и нечётными версиями (разные команды индусов делают?). я лишь про регулярно возвращающиеся баги , которые когда-то приходится "заново" побеждать (как вариант - плюнуть..) лично у меня впечатление сложилось, что анси-зависимые баги возвращаются чаще среднего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 16:15 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
orawish, а я думал? что ты еще веришь в победу индусов над "dual+grouping sets" )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 16:29 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Vintorawish, а я думал? что ты еще веришь в победу индусов над "dual+grouping sets" )))) нэт. я выбрал вариант плюнуть ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 16:36 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
orawish, как я тебя понимаю... Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 16:39 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
andreymxДед-Папыхтет, по срачам соскучился, дедушка? попроси шефа фулл аутер через (+) написатьЧасто ли в реальной жизни требуется Full Outer Join? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 16:46 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
GlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING. Использование NATURAL JOIN нужно запрещать организационными методами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 16:51 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
SQL*Plus, И закрепить их в уголовном кодексе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 16:52 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
envSQL*Plus, И закрепить их в уголовном кодексеЗакрепить, как минимум, в должностной инструкции и в отдельном приказе. С обязательной подписью работника об ознакомлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 17:02 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Timur Akhmadeev Дед, слушайся начальника, исключение - full outer join. partition by RIGHT OUTER JOIN через (+)? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 17:10 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
SQL*PlusGlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING. Использование NATURAL JOIN нужно запрещать организационными методами. Я как-то решил пошутить над новым сотрудником и на просьбу помочь с запросом дал пример с натурал джойном. Предупредил, что нужно нормально переписать. А он взял и закоммитил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 17:54 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
SQL*PlusandreymxДед-Папыхтет, по срачам соскучился, дедушка? попроси шефа фулл аутер через (+) написатьЧасто ли в реальной жизни требуется Full Outer Join?редко у меня во всем расчете себестоимости всего 23 раза нашлось но там оно точно надо - для сравнения данных в двух распределенных системах, например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 18:09 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Glays, Ну это еще по доброму. Я как-то лет 10 назад работал в одной не софтварной конторе, в которой программистов было меньше чем пальцев на руках и у всех были админские привилегии в локальной сети. Когда я уже уволился - пришел новый чел, который не особо нравился некоторым и они периодически ребутили его комп удаленно по локальной сети командой shutdown с указанием веселых сообщений, таймаута и флага force. Пока не вытравили беднягу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 18:20 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, вы там разрулили недопонимания? ощущение что кто-то съехал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 22:01 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Melkomyagkii_newbi, Вообще по-моему продлили до 2020 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 23:13 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Дед-ПапыхтетНачальник говорит, что нужно писать всегда через запятую соединения, что бы другим программистам легче читать было. Почему? Не с проста сделали же INNER JOIN, LEFT JOIN? Какое может быть дело настоящему Папыхтету до того, что будут читать "другие программисты"? А если он еще и Дед, так десять куч на тех программистов, квадратно-гнездовым способом. Для истинного Деда - единственный "другой программист" - это он сам. Но писать как-то надо. И, в качестве "инженерного подхода", некоторыми широко известными знатоками как надо писать, предлагается писать "как все". Просто в каждом конкретном случае требует уточнения, кто это такие, все эти "все". И это точно не твой начальник, если только ты не работаешь в подразделении Oracle над одним из их business application. Здесь "все" - это все и произвольно взятые писатели конкретно Oracle business applications в любом их виде. Если ты видишь там хоть один ansi left join - пиши в схожих ситуациях не задумываясь, и не беспокоясь о разрушении памяти, неправильном результате или неэффективном плане выполнения. Не потому, что это правильно, и память не будет разрушена, а бывший правильным результат вдруг не станет неправильным при выходе следующей версии, а потому что работоспособность (и производительность) всех приложений будет автоматически поддерживаться и улучшаться, если они написаны способом, неотличимым от манеры писателей их собственных приложений. Ну и, при таком инженерном подходе, на следующую версию переходи не ранее того момента, когда под нее будут сертифицированы их собственные бизнес-приложения. К этому моменту, все для них самих критичные разрухи как-нибудь, да подопрут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 02:08 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Банальный outer к outer уже вызывает сложности восприятия мешанины в where и, как следствие, шансы допустить ошибку. По сравнению с багами ansi куда более вероятную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 08:01 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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-страничного эпоса. Не странно ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 10:58 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
SQL*PlusGlaysДед-Папыхтет, тру ораклоиды используют NATURAL JOIN и USING. Использование NATURAL JOIN нужно запрещать организационными методами. На входе табличку повесить: "Невероятно, но факт: натуралы НЕ используют Natural Join" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 11:02 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
RA\/ENSQL*Plusпропущено... Использование NATURAL JOIN нужно запрещать организационными методами. На входе табличку повесить: "Невероятно, но факт: натуралы НЕ используют Natural Join" Это фейк. Настоящие натуралы не используют SQL . Гордо сказать, что я не использую natural join в SQL , это объявить себя мальчиком, а одеться девочкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 11:24 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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 пришлось бы создавать функцию, тип и писать много букв, а перфоманс сопоставимый ибо объемы детские. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 13:31 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
Cамые суровые баги издревна были с union в подзапросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 13:41 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
SQL*PlusandreymxДед-Папыхтет, по срачам соскучился, дедушка? попроси шефа фулл аутер через (+) написатьЧасто ли в реальной жизни требуется Full Outer Join? Например, когда требуется вычислить разницу в хранящихся данных (одна условная таблица/набор) и тех же данных, получаемых "на лету" (другая условная таблица/набор). Не думаю, что это архи-редкость.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 14:18 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
-2-Cамые суровые баги издревна были с union в подзапросах.в 9.2-й версии нередко пропадал второй-третий union из with. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 14:27 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
иквалайзерSQL*Plusпропущено... Часто ли в реальной жизни требуется Full Outer Join? Например, когда требуется вычислить разницу в хранящихся данных (одна условная таблица/набор) и тех же данных, получаемых "на лету" (другая условная таблица/набор). Не думаю, что это архи-редкость..матёрому старперу для этого достаточно пары-тройки юнионов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 14:29 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
andreymxиквалайзерпропущено... Например, когда требуется вычислить разницу в хранящихся данных (одна условная таблица/набор) и тех же данных, получаемых "на лету" (другая условная таблица/набор). Не думаю, что это архи-редкость..матёрому старперу для этого достаточно пары-тройки юнионов union без базара быстрее чем full join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 15:00 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
andreymxиквалайзерпропущено... Например, когда требуется вычислить разницу в хранящихся данных (одна условная таблица/набор) и тех же данных, получаемых "на лету" (другая условная таблица/набор). Не думаю, что это архи-редкость..матёрому старперу для этого достаточно пары-тройки юнионовЛюбители нетрадицинных подходов вполне могут реализовать full join и без ansi и без union. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 15:06 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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). Так что абстрактно сравнивать эти два подхода, в отрыве от конкретной задачи, не имеет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 15:32 |
|
||
|
А правда что в Oracle использовать JOIN - моветон?
|
|||
|---|---|---|---|
|
#18+
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 используется для легкого троллинга. На скуле и не на скуле я использую абсолютно разный стиль подачи информации. :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2016, 02:08 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1886809]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 474ms |

| 0 / 0 |
