powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Интересный стиль написания запроса
25 сообщений из 25, страница 1 из 1
Интересный стиль написания запроса
    #39919979
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

У нас на проекте аналитик пишет sql-запросы очень интересной структуры:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
with main_tbl as (
select 1 id , 'aaa' name from dual union
select 2 id , 'sss' name from dual union
select 3 id , 'ddd' name from dual union
select 4 id , 'fff' name from dual union
select 5 id , 'ggg' name from dual union
select 6 id , 'hhh' name from dual),

old_tbl as (
select 1 id, 'actual' status from dual union
select 2 id, 'old ((' status from dual union
select 3 id, 'actual' status from dual),

very_old_tbl as (
select 1 id from dual union
select 2 id from dual union
select 3 id from dual union
select 4 id from dual)

select t.id, t.name 
 from main_tbl t
 join (
         (select * from very_old_tbl) vo
         join
         (select * from old_tbl) o
         on vo.id = o.id
      ) 
       on vo.id = t.id
      and o.status = 'actual'



Кто нибудь знает, как называется такой укуренный стиль sql по науке? И где можно почитать в документации об этом?
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39919996
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin,

Основной запрос свидетельствует о любви к inline view s.

Если много чего написано в with - это свидетельствует о любви к факторингу (декомпозиции) [под]запросов.
Факторинг, в частности, призван реализовывать логику поэтапно и минимизировать вложенность (которая с другой стороны излишне максимизирована в основном запросе приведенного примера).

Слова для поиска - sub query factoring (от глагола factor - to decompose code to reveal the structure of the problem).
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920001
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег,

меня удивили не with, а это
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select t.id, t.name 
 from main_tbl t
 join (
         (select * from very_old_tbl) vo
         join
         (select * from old_tbl) o
         on vo.id = o.id
      ) 
       on vo.id = t.id
      and o.status = 'actual'
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920007
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег
(от глагола factor - to decompose code to reveal the structure of the problem)
Осмелюсь выразить сомнение.
Под словом "Factoring" Oracle здесь скорее имеет в виду "формирование", а не "разложение"
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920009
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin
как называется такой укуренный стиль sql по науке?
Главное что надо знать по науке, что приведенный запрос преобразуется Ораклом в
Код: plsql
1.
2.
3.
4.
5.
select t.id id, t.name name
  from main_tbl t, very_old_tbl, old_tbl
 where very_old_tbl.id = t.id
   and old_tbl.status = 'actual'
   and very_old_tbl.id = old_tbl.id

И в итоге не важно сколько inline views использовал аналитик.
Если ему так легче "читать" логику запроса и он не создает хранимый код, то какое тебе дело до его стиля?

PS. Также полезно почитать в документации про join_clause.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920013
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
Кобанчег
(от глагола factor - to decompose code to reveal the structure of the problem)
Осмелюсь выразить сомнение.
Под словом "Factoring" Oracle здесь скорее имеет в виду "формирование", а не "разложение"
"формирование" - это откуда то взял ты.
А Оракл понимает под английскими словами то, что они означают в словаре.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920019
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег
"формирование" - это откуда то взял ты.
А Оракл понимает под английскими словами то, что они означают в словаре.
factory
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920022
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin
меня удивили не with, а это
Если лень читать доку, то можешь глянуть в книге фотошопа .
В конце раздела "Наглядность и читаемость" - страница 29.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920023
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
Кобанчег
"формирование" - это откуда то взял ты.
А Оракл понимает под английскими словами то, что они означают в словаре.
factory

Мсье полагает, что factoring и factory - синонимы?
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920028
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
Кобанчег
"формирование" - это откуда то взял ты.
А Оракл понимает под английскими словами то, что они означают в словаре.
factory
Ты реально прикалываешься или просто тролль?

При чем здесь фабрика к глаголу фактор, а?
Лишняя буква Y не смущает совсем?
В слове "хай" если заменить а на у тоже смысл несколько поменяется.

Если иногда приходится общатся с носителями языка, то можно услашыть что-то в духе:
I would like to factor this logic out from the main query.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920031
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Мсье полагает, что factoring и factory - синонимы?
Скорее, однокоренные
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920034
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
andrey_anonymous
Мсье полагает, что factoring и factory - синонимы?
Скорее, однокоренные

Ссылку на словарь однокоренных ангельских не представите?
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920038
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
andrey_anonymous
Мсье полагает, что factoring и factory - синонимы?
Скорее, однокоренные
Тут только остаётся привести тебе пример.

Вот есть в англ такое слово - sill. Означает подоконник (порог, нижняя часть рамы).
А еще есть silly. Означает дурачок, глупый.

Так вот: don't be silly, Eugene!

И я сейчас не про подоконник.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920042
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin,

Лишние select * from some_table не прибавляют читабельности и усложняют запрос,
единственный плюс для сильно ленивого человека, это то что можно выделить мышкой и запустить.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920044
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev
Anton_Demin,

Лишние select * from some_table не прибавляют читабельности и усложняют запрос,
единственный плюс для сильно ленивого человека, это то что можно выделить мышкой и запустить.
Его смутило не это, а то, что можно так писать.
Код: plsql
1.
2.
3.
4.
5.
6.
select t.id, t.name
  from main_tbl t
  join very_old_tbl vo
  join old_tbl o
    on vo.id = o.id
    on vo.id = t.id and o.status = 'actual'
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920047
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Ссылку на словарь однокоренных ангельских не представите?
Я лишь высказал сомнение в наивном чтении словаря, рассчитанного на масс-маркет.
Это лишь мое мнение, полагающееся на здравый смысл.
Ведь, в частности, понятие "recursive subquery factoring" означает не "разбиение", а скорее "создание".
Могу ошибаться :)
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920051
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег,

Код: plsql
1.
2.
3.
4.
5.
6.
select t.id, t.name
  from main_tbl t
     , very_old_tbl vo
     , old_tbl o
where o.status = 'actual'
  and t.id = decode(t.id,vo.id,o.id)
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920058
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
andrey_anonymous
Ссылку на словарь однокоренных ангельских не представите?
Я лишь высказал сомнение в наивном чтении словаря, рассчитанного на масс-маркет.
Это лишь мое мнение, полагающееся на здравый смысл.
Ведь, в частности, понятие "recursive subquery factoring" означает не "разбиение", а скорее "создание".
Могу ошибаться :)
Твои сомнения обоснованы только твоими фантазиями и крайне низким уровнем владения англ.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920059
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dshedoo
Кобанчег,

Код: plsql
1.
2.
3.
4.
5.
6.
select t.id, t.name
  from main_tbl t
     , very_old_tbl vo
     , old_tbl o
where o.status = 'actual'
  and t.id = decode(t.id,vo.id,o.id)

Ты ко мне обращаешься чтоб я прокоментировал эту гадость или по каким-то иным причинам?
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920269
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin
Кто нибудь знает, как называется такой укуренный стиль sql по науке

Это называется copy-paste driven coding и обычно считается чем-то зашкварным.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920517
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой стиль написания обычно свидетельствует об отсутствии понимания преимуществ субд при обработке данных.
Таким образом можно нехило запутать оптимизатор, лишние несколько раз вызывать одни и те же объекты.
Проверено - читабельности никакой нит, после прошествия времени даже создателю тяжелее разобраться в том, что он написал
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920525
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaldorey
Проверено - читабельности никакой нит, после прошествия времени даже создателю тяжелее разобраться в том, что он написал
Не надо путать IYHO с ROT.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920643
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin
Добрый день.

..

Кто нибудь знает, как называется такой укуренный стиль sql по науке? И где можно почитать в документации об этом?


стиль ansi (101% )
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920895
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Да, писал, немного торопясь.
Каждый блок прочитать легко, а вот восстановить картину, почему итоговый набор данных получается именно таким способом, сложно.
Есть ли здесь логика, учитывается ли в этом блоке что-то такое, что нельзя убирать. Когда спрашивал тех, кто так писал, они не могли ответить, над каждым блоком приходилось думать, как над цельным скриптом, потому что в таком написании получался не просто кусок, необходимый для оптимизации, а некая сущность, которая здесь, скорее всего, не должна возникать.
Возможно не видел хорошего применения сего паттерна с точки зрения наглядности.
...
Рейтинг: 0 / 0
Интересный стиль написания запроса
    #39920897
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaldorey
Возможно не видел хорошего применения сего паттерна с точки зрения наглядности.
И поэтому не обобщай. Задачи разные бывают. А читабельность, прежде всего, зависит от автора. И даже главное не читабельность, а сопровождаемость. "Гении" такой ещё одноразовый говнокод могут соорудить...


P.S. И вообще никакой это ни "паттерн". Просто использование возможностей.
Не нужно поддакивать укуренному ТС в его невежестве.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Интересный стиль написания запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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