The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Опубликован PRQL, компилируемый в SQL язык обработки данных, opennews (??), 26-Июл-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


27. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +2 +/
Сообщение от Дмитрий (??), 26-Июл-23, 17:32 
Если если sql не больше нескольких строк то не проблема.

У Sql есть недостаток. Он не модульный.
Нельзя сказать этот запрос такой же как этот только с небольшими изменения. У нас в проекте огромные запросы (по 3-4 страницы) а ещё код копипастится с десяток раз. Это очень плохо, код становится плохо поддерживаемым.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

28. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +5 +/
Сообщение от Аноним (28), 26-Июл-23, 17:38 
А ты не думал почему вы продолжаете делать именно так? Может потому что по другому просто не может работать?
Ответить | Правка | Наверх | Cообщить модератору

31. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Твайлайт Спаркл (ok), 26-Июл-23, 17:59 
views не помогает? Или динамический sql?
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

53. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +2 +/
Сообщение от Дмитрий (??), 26-Июл-23, 19:39 
Да, динамический sql подходит. Но если генерируется то что должно создаваться руками - это признак что язык который генерируется - плохой.
Ответить | Правка | Наверх | Cообщить модератору

38. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +3 +/
Сообщение от Аноним (38), 26-Июл-23, 18:41 
Код писать нормально просто надо. Это у вас проблемы, а не у SQL
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

52. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Rodegast (ok), 26-Июл-23, 19:22 
про хранимки не слышал?
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

57. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +1 +/
Сообщение от Дмитрий (??), 26-Июл-23, 19:47 
Реляционные базы и так плохо маштабируются. Как будет производительность с хранимкам не знаю, но да, там с повторным использованием кода получше
Ответить | Правка | Наверх | Cообщить модератору

63. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Rodegast (ok), 26-Июл-23, 20:18 
> Как будет производительность с хранимкам не знаю

Тебе никто не мешает сделать хранимку с обычным SQL-ом.

Ответить | Правка | Наверх | Cообщить модератору

130. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +1 +/
Сообщение от Дмитрий (??), 28-Июл-23, 00:43 
>Тебе никто не мешает сделать
>хранимку с обычным SQL-ом.

Тогда непонятно для чего хранимка

Ответить | Правка | Наверх | Cообщить модератору

85. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  –3 +/
Сообщение от Аноним (85), 27-Июл-23, 01:57 
Категорически не советую никакие "хранимки" - мало того, что это в принципе уё6ство - писать на кривом недоязыке "процедуры" (привет новичкам проекта!), так ещё они не переносимы. Идеальная схема: СУБД исключительно для данных, вся логика на апп-сервере. В случае чего - можно СУБД даже полностью сменить, не говоря о простоте портирования на более свежие версии.
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

86. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +2 +/
Сообщение от Прохожий (??), 27-Июл-23, 03:07 
>Идеальная схема

Отнюдь не идеальная. Как вы целостность данных собираетесь обеспечивать, если кто-то решит мимо сервера приложений нагадить?

Как обеспечивать непротиворечивость данных, если будет больше одного сервера приложений?

>В случае чего - можно СУБД даже полностью сменить

Чего, например?

>не говоря о простоте портирования на более свежие версии

Какие там сложности?

Ответить | Правка | Наверх | Cообщить модератору

117. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Аноним (117), 27-Июл-23, 16:56 
Если кто-то может мимо сервера приложений "гадить", найдется и DBA, который это дело поправит.
Ответить | Правка | Наверх | Cообщить модератору

121. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Прохожий (??), 27-Июл-23, 20:21 
Но к тому времени уже может оказаться поздно что-либо поправлять.
Ответить | Правка | Наверх | Cообщить модератору

151. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Аноним (151), 06-Янв-24, 06:02 
> если кто-то решит мимо сервера приложений нагадить?

Давай такие ТУХЛЫЕ аргументы не приводить? А то я скажу, что у тебя нет защиты от "уборщица пришла с пылесосом и выдернула розетку сервера". Ты как-то мыслишь вообще не по-программистски.

> Как обеспечивать непротиворечивость данных, если будет больше одного сервера приложений?

А в чём именно проблема-то?? Подробнее.

> Чего, например?

Чего "чего"? ДВИЖОК сменить! Что непонятного?

> Какие там сложности?

Все те же сложности, как и перенос чего-либо вообще на другой физический сервер - то с форматом дат напутали, то нашлись неконсистентные данные, то надо перенести блобы из файловой системы в новое место (а в старой базе пути). Я не просто про "бэкап-рестор", а аккуратный перенос данных, потому что незачем тащить на новый сервер все старые атавизмы. И конечно процедуры - обратная совместимость у них есть, но как всегда найдётся энтузазист, который захочет переписать короче (а ради чего тогда прогресс??). И вот уже у вас ДВЕ версии хранимок.

Я не понимаю, зачем вообще что-либо писать на сервере, используя неуклюжий T/SQL или PL/SQL. Есть родной ЯП, пусть даже это и пестон какой-нть, какой смысл ОТДЕЛЬНО писать на ещё одном языке??

Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

88. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +2 +/
Сообщение от Аноним (88), 27-Июл-23, 04:21 
Такая схема подходит для небольших, средних проектов. Они могут себе позволить "эксперименты" с "а давай сегодня сменим СУБД на ту, а через месяц на вон ту...".
Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

89. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +2 +/
Сообщение от ойвэй (?), 27-Июл-23, 04:38 
> В случае чего - можно СУБД даже полностью сменить

Постоянно слышу этот аргумент, а в реальности как часто проекты меняют СУБД?

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

101. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +1 +/
Сообщение от 1 (??), 27-Июл-23, 09:08 
Вот прям сейчас идёт масштабный эксперимент по смене Oracle на PostgreSQL.
Даже при том, что внутренний язык подогнали, всё идёт как-то не очень.
Ответить | Правка | Наверх | Cообщить модератору

118. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +1 +/
Сообщение от Аноним (117), 27-Июл-23, 16:58 
Потому что нельзя за год "подогнать" то, что создавалось десятки лет. Могли бы сменить парадигму, раз уж такое дело, но нет - хотят бесплатный оракл, альтернативные подходы не хотят.
Ответить | Правка | Наверх | Cообщить модератору

145. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Нанонимус53 (?), 02-Авг-23, 01:01 
Речь не про "бесплатный Oracle", а про импортозамещение в связи с тем что Oracle теперь в РФ не продаётся.
Ответить | Правка | Наверх | Cообщить модератору

114. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Rodegast (ok), 27-Июл-23, 15:02 
> Категорически не советую никакие "хранимки"

Человеку надо переиспользовать SQL. Хранимки для этого вполне подходят. Можно ещё и CTE использовать, но оно без параметров.

> в принципе уё6ство - писать на кривом недоязыке

Язык SQL.

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

137. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Аноним (137), 28-Июл-23, 19:13 
Есть разница между бизнес-логикой и логикой целостности данных. Не всё можно уложить в constraints.

Типичный случай - умышленная денормализация в целях повышения производительности, например, всякие счётчики.

В Постгресе в большинстве случаев можно обойтись CREATE RULE, описывая событие и реакцию на него на чистом SQL. Это, конечно, не портабельно, но и триггеры-хранимки тоже не портабельны, зато не возникает соблазна засунуть туда ващевсё

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

122. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Прохожий (??), 27-Июл-23, 20:31 
> Реляционные базы и так плохо масштабируются.

Зависит от архитектуры приложения вобще-то. Например, отдельные модули в отдельной схеме (базе данных) без сильных связей с другими схемами (базами данных) вполне себе отлично разносятся по разным хостам. Есть и другие способы разнесения нагрузки, типа репликации мастер-мастер, мастер-ведомый, и так далее.

Да, это не "СУБД" типа "ключ-значение", но зато РСУБД и гораздо больше чего умеет из коробки.

А так серебряной пули не бывает.

Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

91. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +1 +/
Сообщение от Аноним (91), 27-Июл-23, 05:50 
так прекратите писать sql-спагетти, и разгребите ваши запросы.
у вас видимо текучка кадров большая  :)
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

94. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +3 +/
Сообщение от Аноним (94), 27-Июл-23, 06:56 
Чта?!

Во первых в sql есть view.
Во вторых with.

Что покрывает все потребности в модульности.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

134. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от ptr (??), 28-Июл-23, 08:47 
VIEW, CTE и функции, включая табличные, решают проблему лишь частично.
Мне радикально решить проблему модульности удалось лишь препроцессингом SQL кода средствами C препроцессора. Вот когда появились включаемые файлы и макросы - тогда действительно код стал модульным.
К сожалению, инлайн код в запросе намного производительней, чем тот же код, вынесенный в функции. А у меня даже такие запросики возникают: https://github.com/dbeaver/dbeaver/issues/10680 (смотрите аттач в zip). При том, что до препроцессора, это вполне себе компактный запрос:

SELECT ROUND(Q.Rez-UC_DISCOUNT,0)+CALC_JA_TOTAL
FROM ...

Ответить | Правка | Наверх | Cообщить модератору

119. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Аноним (117), 27-Июл-23, 17:24 
Модулей в SQL быть не может, однако от дублирования избавиться можно.
1) Можно повторяющийся SQL инклюдить из файла.
2) Можно написать класс билдера запросов для моделей, одноклассники которого смогут экспортировать миксины для построения запроса, а также использовать их для построения своих запросов. Очень грубо, можно передать список вещей, которые нужно добавить в те или иные части запроса, и что нужно потом сделать с результатом запроса. Например, можно добавить в группировку и в селект, а после исполнения развернуть group_concat в массивчик айдишек и т.д. В одном из проектов я такую вещь сделал и несмотря на некую навороченность кода, SQL существовал в единственном экземпляре. Запросы на экран и более были нормой, да.
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

123. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Прохожий (??), 27-Июл-23, 20:41 
> Модулей в SQL быть не может

Я бы не был столь категоричным. View - вполне себе самостоятельный модуль. Есть и ещё, попроще, не так, чтобы модули, но вполне нормальный способ сократить дублирование кода. В Oracle использование функций в теле SQL-запроса подвезли с 19-й версии. Кроме того, есть with, как уже отметили выше.

Ответить | Правка | Наверх | Cообщить модератору

136. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Аноним (117), 28-Июл-23, 15:35 
Фактически это макросы. Подсократить запросы получится, спору нет.
Ответить | Правка | Наверх | Cообщить модератору

131. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от ptr (??), 28-Июл-23, 07:15 
Проблему решает просто препроцессинг SQL кода, например, C препроцессором. Сразу же SQL модульный становится, благодаря макросам и включаемым файлам.
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

146. "Опубликован PRQL, компилируемый в SQL язык обработки данных"  +/
Сообщение от Аноним (146), 02-Авг-23, 15:15 
Это изврат ради изврата. Сиквелу совершенно ни к чему быть модульным.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру