powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Причины ненависти к языку SQL?
25 сообщений из 306, страница 8 из 13
Причины ненависти к языку SQL?
    #39728328
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЩичеЧем сложнее запрос, тем больше ORM требует внимания к себе
Чем сложнее запрос, тем он сам должен требовать внимания к себе.
Не стоит ждать дня, когда он перевалит на третью страницу, чтобы задуматься над тем, а как переделать систему, чтобы не было сложных запросов.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728334
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухЩичеЧем сложнее запрос, тем больше ORM требует внимания к себе
Чем сложнее запрос, тем он сам должен требовать внимания к себе.
Не стоит ждать дня, когда он перевалит на третью страницу, чтобы задуматься над тем, а как переделать систему, чтобы не было сложных запросов.

Хорошо. У вас такой запрос в силу сложной бизнес логики. Допустим, ценой глубоких раздумий вы его сократили до 2 страниц. Но больше уже не получается ибо задача. И никакие манипуляции со структурой не годятся, ибо тогда вы будете продумывать ещё стопитцот других задач сидящих на ней.
Декомпозиция - отличный вариант. Но, серия запросов куда как менее производительна нежели один большой. Использовать хранимки, где это можно сделать, используя один запрос извне, по нынешним взглядам низзя!
Вот и думайте, вы используете один запрос сложной структуры, расходуя минимум ресурсов, или вынимаете душу из СУБД.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728335
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЩичеДмитрий Мухпропущено...

Чем сложнее запрос, тем он сам должен требовать внимания к себе.
Не стоит ждать дня, когда он перевалит на третью страницу, чтобы задуматься над тем, а как переделать систему, чтобы не было сложных запросов.

Хорошо. У вас такой запрос в силу сложной бизнес логики. Допустим, ценой глубоких раздумий вы его сократили до 2 страниц. Но больше уже не получается ибо задача. И никакие манипуляции со структурой не годятся, ибо тогда вы будете продумывать ещё стопитцот других задач сидящих на ней.
Декомпозиция - отличный вариант. Но, серия запросов куда как менее производительна нежели один большой. Использовать хранимки, где это можно сделать, используя один запрос извне, по нынешним взглядам низзя!
Вот и думайте, вы используете один запрос сложной структуры, расходуя минимум ресурсов, или вынимаете душу из СУБД.
Что конкретно за запрос? Кому он нужен?
Как с этими данными дальше работают? Расчитать их при записи есть возможность? Навернякак есть
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728338
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачастую ведь оно как бывает: есть бизнес транзакция в результате выполнения которой данные разлетаются по N таблицам.
А потом, внезапно, собираются из этих же N таблиц + справочники в сложный запрос "в силу сложной бизнес логики".

Так вот если на последнее взглянуть пристальнее, то легко прийти к очевидному выводу
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728349
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухЧто конкретно за запрос? Кому он нужен?
Как с этими данными дальше работают? Расчитать их при записи есть возможность? Навернякак есть

Наверняка нет :) Запрос собирающий данные из записей товарных остатков.
Вмешиваться в запись низзя. Рассчитать при записи низзя, потому что они сыпятся мощным потоком. Реагировать на каждую запись - обратить производительность в ноль. Триггеры, напомню, использовать западло, да и не всегда помогает.
По планировщику в обед или ночью выполняется тот самый сложный запрос, что и рассчитывает. Но даже ночью надо знать меру, потому что магазин работает, а в обед покупатели все равно есть!

В каждой большой системе что-то подобное наличествует.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728350
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЩичеДмитрий МухЧто конкретно за запрос? Кому он нужен?
Как с этими данными дальше работают? Расчитать их при записи есть возможность? Навернякак есть

Запрос собирающий данные из записей товарных остатков.
Значит можно. Через регистр движения товаров. 15 лет назад для НК "ЮКОС" такое делали.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728351
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухЗачастую ведь оно как бывает: есть бизнес транзакция в результате выполнения которой данные разлетаются по N таблицам.
А потом, внезапно, собираются из этих же N таблиц + справочники в сложный запрос "в силу сложной бизнес логики".

Так вот если на последнее взглянуть пристальнее, то легко прийти к очевидному выводу

Да, что написание/поддержка сложного запроса обойдется куда дешевле, чем тот самый очевидный вывод. Трудоемкость просто много меньше :) Как для программиста, так и для СУБД.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728354
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЩичеДмитрий МухЗачастую ведь оно как бывает: есть бизнес транзакция в результате выполнения которой данные разлетаются по N таблицам.
А потом, внезапно, собираются из этих же N таблиц + справочники в сложный запрос "в силу сложной бизнес логики".

Так вот если на последнее взглянуть пристальнее, то легко прийти к очевидному выводу

Да, что написание/поддержка сложного запроса обойдется куда дешевле, чем тот самый очевидный вывод.
До поры до времени
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728532
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Суть в том, что сами разработчики ORM-ов должны знать СУБД отлично, очень многие разработчики пришли в ORM из разработки СУБД-first, потому что устали заниматься обезьяним трудом.

Но что важно, это может быть оскорбительным.. Но не обессудьте. Некоторым нравится обезьяний труд, так как ничего другого они не умеют, понимать, изучать, осваивать не хотят. А хотят сидеть на насиженном месте, так как обезьяний труд он и есть обезьяний. Для обезьян.
ORM полезен в меру. А то, с чем встречался я как админ, было откровенное тормознутое говно. Я могу объяснить это только тем, что те програмёры не знали СУБД и не желали знать. И ORM это провоцирует, создаёт иллюзию, что можно обойтись без.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728542
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenfordAddxПомню статью на Хабре про крутой проект на микросервисах.
И понимаю, что на SQL это 10 строчек кода.
Просто нужно понимать реляционные базы чуть лучше, чем знать простые join'ы.
И не уповать, что ORM - это панацея для всех проблем.
молодой человек, вы там пример прочитали. Микросервисы это следующая стадия развития софта. Одной из предыдущих стадий был именно что переход на ОРМ, он уже давно завершен. А что-б вам стало еще страшнее, в микросервисах нет ни внешних ключей, ни транзакций (между микросервисами), и даже джойны между ними не сделать. И представляете, все работает

О, еще один адепт. Прямо у него эволюция идет.
Решил поразить всех откровениями, никто же тут не знает что такое ORM и микросервисы.
Вы хотя бы книжку почитайте какую-нибудь, что такое микросервисы и с чем их едят.
Не будете нести бред (давно такого не читал) насчет транзакций, ключей и джоинов (которые не связаны с микросервисной архитектурой от слова никак).
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728559
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухЗачастую ведь оно как бывает: есть бизнес транзакция в результате выполнения которой данные разлетаются по N таблицам.
А потом, внезапно, собираются из этих же N таблиц + справочники в сложный запрос "в силу сложной бизнес логики".

Так вот если на последнее взглянуть пристальнее, то легко прийти к очевидному выводу

А потом (внезапно) оказывается, что нет. И данные можно рассчитывать в момент записи, и реестров понастроить.
Вот только при каждом изменении их перестраивать надо, а это (внезапно) процесс небыстрый.
И данные нужны чуть сложнее, чем в разрезе одного реестра - операция/остаток.
Впрочем, тут очень сильно зависит от приложения и архитектуры.
Кроме того, всепеределать! не всегда возможно, а хп неплохой уровень абстракции.
Впрочем, я вовсе не принципиальный сторонник бизнес-логики в хп, во многих случаях легко обойтись без них.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728667
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухОзверинпропущено...


Причем тут хранимки? Я ж не про CRUD логику. Я, допустим, про агреггированную выборку. Или про параметризированную выборку со сложными джоинами.
Спрашиваю про хранимки, потому что пытаюсь понять, о чём речь.

Аггрегированную выборку, или параметризированную выборку со сложными джоинами можно и в запрос оформить.
А можно и приложение построить так, что аггрегаты будут считаться при записи и данные денормализоваться.
Тогда выборки будут простые и крайне быстрые.

Но это уже вопрос проектирования, а не ORM vs SQL.

И то, что Вы назвали CRUD логикой у вас где, в хранимках?

Совершенно не сравнимая сложность между: "построить один запрос быстро и на коленке проверить результат" и "построить приложение так, чтобы агрегировало что нужно, денормализовало и так далее". Впрочем, кроме сложности, несравнимые затраты денежные и временные.

CRUD логика - это базис, заложенные в соврвеменные ORM системы. Причем тут хранимки? Я говорил о том, что если от софта требуется примитивный CRUD, то я прикручу springjpa и за 15 минут слабаю на коленке готовый прототип без всяких SQL запросов, но если же логика потребуется сложнее, то я сначала накидаю SQL запросы к системе нативные, если они дадут результат - буду думать, куда дальше развивать систему.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728744
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORM - это просто посредник между UI и DB
ОРМ просто генерирует SQL из операторов жабы, сисярпа и т.д.
ну а посредники - это паразиты...

Просто, некоторые хвосты и мухи настолько ограничены, что не в состоянии освоить sql...
а понимание, как работает оптимизатор - ваще не для них
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728775
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxДмитрий МухЗачастую ведь оно как бывает: есть бизнес транзакция в результате выполнения которой данные разлетаются по N таблицам.
А потом, внезапно, собираются из этих же N таблиц + справочники в сложный запрос "в силу сложной бизнес логики".

Так вот если на последнее взглянуть пристальнее, то легко прийти к очевидному выводу

А потом (внезапно) оказывается, что нет. И данные можно рассчитывать в момент записи, и реестров понастроить.
Вот только при каждом изменении их перестраивать надо, а это (внезапно) процесс небыстрый.
И данные нужны чуть сложнее, чем в разрезе одного реестра - операция/остаток.
Впрочем, тут очень сильно зависит от приложения и архитектуры.
Кроме того, всепеределать! не всегда возможно, а хп неплохой уровень абстракции.
Впрочем, я вовсе не принципиальный сторонник бизнес-логики в хп, во многих случаях легко обойтись без них.
Откуда внезапно-то? Думаете у нас это в далёком 2003-м году внезапно случилось?

Нет, запросы разрослись, их стало трудно поддерживать, выполнялись они достаточно долго, оптимизировать стало дальше некуда.
Мы на это дело посмотрели и не внезапно, а через серию обсуждений, приняли решение переделать.
Переделали, оттестировали (в том числе и изменения с перестраиванием), внедрили в эксплуатацию на паре серверов.

Когда убедились, что всё работает, то раскатали на остальные 90+.
Начали собирать положительную обратную связь о том, как теперь всё быстро работает.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728777
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинДмитрий Мухпропущено...

Спрашиваю про хранимки, потому что пытаюсь понять, о чём речь.

Аггрегированную выборку, или параметризированную выборку со сложными джоинами можно и в запрос оформить.
А можно и приложение построить так, что аггрегаты будут считаться при записи и данные денормализоваться.
Тогда выборки будут простые и крайне быстрые.

Но это уже вопрос проектирования, а не ORM vs SQL.

И то, что Вы назвали CRUD логикой у вас где, в хранимках?

Совершенно не сравнимая сложность между: "построить один запрос быстро и на коленке проверить результат" и "построить приложение так, чтобы агрегировало что нужно, денормализовало и так далее". Впрочем, кроме сложности, несравнимые затраты денежные и временные.
По моему опыту с ростом приложения и объемов данных затраты начинают быть сравнимыми.
Вернее писать и сопровождать сложные запросы становиться дороже и по времени и по деньгам.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728781
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинесли же логика потребуется сложнее, то я сначала накидаю SQL запросы к системе нативные, если они дадут результат - буду думать, куда дальше развивать систему
К примеру логика потребуется сложнее, но запросы при этом простые, то в какую сторону пойдёте?
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728798
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Откуда внезапно-то? Думаете у нас это в далёком 2003-м году внезапно случилось?

Нет, запросы разрослись, их стало трудно поддерживать, выполнялись они достаточно долго, оптимизировать стало дальше некуда.
Мы на это дело посмотрели и не внезапно, а через серию обсуждений, приняли решение переделать.
Переделали, оттестировали (в том числе и изменения с перестраиванием), внедрили в эксплуатацию на паре серверов.

Когда убедились, что всё работает, то раскатали на остальные 90+.
Начали собирать положительную обратную связь о том, как теперь всё быстро работает.

Внезапно = неожиданно для разработчика.
Который думал, что новая технология - это серебряная пуля.
Я рад, что у Вас все получилось. Но это ничего не меняет.
Есть очень разный софт и очень разные задачи.
Можно сделать так
- О появилась новая (ха-ха, некоторые тут про микросервисы в 2018 году узнали) технология, все переводим на нее. Ой, не выходит каменный цветок, плохая технология, плохая.
А можно как одни ребята, которые внедряли какой-то проект (было видео на ютубе, но конечно ссылку не найду)
- Рассморели разные архитектуры - микросервисы, монолит, разные типы хранилищ и поняли, что в этом проекте микросервисы не годятся.
Я бы человека, который сказал бы мне, что микросервисы хороши для любой задачи, на работу бы не взял.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728826
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAAddxпропущено...


А потом (внезапно) оказывается, что нет. И данные можно рассчитывать в момент записи, и реестров понастроить.
Вот только при каждом изменении их перестраивать надо, а это (внезапно) процесс небыстрый.
И данные нужны чуть сложнее, чем в разрезе одного реестра - операция/остаток.
Впрочем, тут очень сильно зависит от приложения и архитектуры.
Кроме того, всепеределать! не всегда возможно, а хп неплохой уровень абстракции.
Впрочем, я вовсе не принципиальный сторонник бизнес-логики в хп, во многих случаях легко обойтись без них.
Откуда внезапно-то? Думаете у нас это в далёком 2003-м году внезапно случилось?

Нет, запросы разрослись, их стало трудно поддерживать, выполнялись они достаточно долго, оптимизировать стало дальше некуда.
Мы на это дело посмотрели и не внезапно, а через серию обсуждений, приняли решение переделать.
Переделали, оттестировали (в том числе и изменения с перестраиванием), внедрили в эксплуатацию на паре серверов.

Когда убедились, что всё работает, то раскатали на остальные 90+.
Начали собирать положительную обратную связь о том, как теперь всё быстро работает.а можете в двух словах рассказать что была за задача, какие объемы данных, требования по производительности и т.д.?
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39728976
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxЯ бы человека, который сказал бы мне, что микросервисы хороши для любой задачи, на работу бы не взял.
а откуда вы извлекли, что микросервисы в каждом проекте необходимы? Они для больших и сложных современных систем расчитаны, заточенных под маштабирование. Учетную систему траспортного цеха можно и на хранимках слабать
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39729040
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxskyANAОткуда внезапно-то? Думаете у нас это в далёком 2003-м году внезапно случилось?

Нет, запросы разрослись, их стало трудно поддерживать, выполнялись они достаточно долго, оптимизировать стало дальше некуда.
Мы на это дело посмотрели и не внезапно, а через серию обсуждений, приняли решение переделать.
Переделали, оттестировали (в том числе и изменения с перестраиванием), внедрили в эксплуатацию на паре серверов.

Когда убедились, что всё работает, то раскатали на остальные 90+.
Начали собирать положительную обратную связь о том, как теперь всё быстро работает.

Внезапно = неожиданно для разработчика.
Который думал, что новая технология - это серебряная пуля.
Я рад, что у Вас все получилось. Но это ничего не меняет.
Есть очень разный софт и очень разные задачи.
Можно сделать так
- О появилась новая (ха-ха, некоторые тут про микросервисы в 2018 году узнали) технология, все переводим на нее. Ой, не выходит каменный цветок, плохая технология, плохая.
А можно как одни ребята, которые внедряли какой-то проект (было видео на ютубе, но конечно ссылку не найду)
- Рассморели разные архитектуры - микросервисы, монолит, разные типы хранилищ и поняли, что в этом проекте микросервисы не годятся.
Я бы человека, который сказал бы мне, что микросервисы хороши для любой задачи, на работу бы не взял.
"И тут Остапа понесло"

Регистры - это банальная денормализация. Что в ней, простите, нового?
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39729044
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperskyANAпропущено...

Откуда внезапно-то? Думаете у нас это в далёком 2003-м году внезапно случилось?

Нет, запросы разрослись, их стало трудно поддерживать, выполнялись они достаточно долго, оптимизировать стало дальше некуда.
Мы на это дело посмотрели и не внезапно, а через серию обсуждений, приняли решение переделать.
Переделали, оттестировали (в том числе и изменения с перестраиванием), внедрили в эксплуатацию на паре серверов.

Когда убедились, что всё работает, то раскатали на остальные 90+.
Начали собирать положительную обратную связь о том, как теперь всё быстро работает.а можете в двух словах рассказать что была за задача, какие объемы данных, требования по производительности и т.д.?
АИС ТПС НК "ЮКОС"
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39729130
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОзверинесли же логика потребуется сложнее, то я сначала накидаю SQL запросы к системе нативные, если они дадут результат - буду думать, куда дальше развивать систему
К примеру логика потребуется сложнее, но запросы при этом простые, то в какую сторону пойдёте?

это что такое?:)
Это не описание проблемы\задачи.

Ну вот пример: есть у меня отчетная система. Ничего сложного, пришла она ко мне изначально с нативными запросами. Что мне ее - переписывать на сущности+репозитории? Нет, я просто дописал небольшой агрегатор данных для отчетов и продолжил в том же духе. Легаси ж никто не отменял.

Или еще пример:имеется некий проект. Допустим, у него 3 сущности:
* пользователи
* кастомные поля
* значения кастомных полей для пользователей

Я так понимаю, вы любите EAV? Ну вот по сути кастомные поля и их значения - это ЕАВ. Думаю, не стоит долго расписывать, что если мне надо по сути 1-2 поля, я не буду под этого городить кучу кода, тем более, что jpa и eav без бутылки не свяжешь.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39729171
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинНу вот пример: есть у меня отчетная система. Ничего сложного, пришла она ко мне изначально с нативными запросами. Что мне ее - переписывать на сущности+репозитории? Нет, я просто дописал небольшой агрегатор данных для отчетов и продолжил в том же духе. Легаси ж никто не отменял.
И что? :)
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39729172
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинЯ так понимаю, вы любите EAV?
Нет.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39729175
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинНу вот по сути кастомные поля и их значения - это ЕАВ.
Почему ЕАВ? Положите их в MongoDB, или PostgreSQL JSONB и не будет никакого ЕАВ :)
...
Рейтинг: 0 / 0
25 сообщений из 306, страница 8 из 13
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Причины ненависти к языку SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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