Информация об изменениях

Сообщение Re[2]: Оптимизация работы с sql от 03.01.2024 17:19

Изменено 03.01.2024 19:02 MaximVK

Re[2]: Оптимизация работы с sql
Здравствуйте, IT, Вы писали:

IT>Если речь про .NET, то сегодня писать SQL руками — это нонсенс. Тем более под разные диалекты SQL. linq2db и подобное всё это умеет и поддерживает в том числе всевозможные техники повторного использования кода.


linq2db я активно использовал, когда писал под .Net. Очень удобно.


Отвечаю сразу и IT и Константину (спасибо за комментарии!)

У меня сейчас другая задача.
Нужно писать большое количество аналитических запросов и у меня нет необходимости вызывать этот sql код из приложения.
Максимум — это питонячий скрипт, который потом докручивает аналитику или ML.
С точки зрения кол-во строк кода 80-90% — это SQL скрипты, которые процессят относительно большие объемы, несколько миллиардов записей.
Поэтому используются различные оптимизационные техники, так как один и тот же запрос можно написать очень по разному.
Но так как SQL очень а) избыточен, б) плохо композируется, в) плохо поддерживает переиспользование, то приходится постоянно писать плюс/минус одинаковые куски кода, что раздражает. Code pilot помогает, но далеко не всегда ну и это не совсем то, что хотелось бы.
Re[2]: Оптимизация работы с sql
Здравствуйте, IT, Вы писали:

IT>Если речь про .NET, то сегодня писать SQL руками — это нонсенс. Тем более под разные диалекты SQL. linq2db и подобное всё это умеет и поддерживает в том числе всевозможные техники повторного использования кода.


linq2db я активно использовал, когда писал под .Net. Очень удобно.


Отвечаю сразу и IT и Константину (спасибо за комментарии!)

У меня сейчас другая задача.
Нужно писать большое количество аналитических запросов и у меня нет необходимости вызывать этот sql код из приложения.
Максимум — это питонячий скрипт, который потом докручивает аналитику или ML.
С точки зрения кол-во строк кода 80-90% — это SQL скрипты, которые процессят относительно большие объемы, несколько миллиардов записей.
Поэтому используются различные оптимизационные техники, так как один и тот же запрос можно написать очень по разному.
Но так как SQL очень а) избыточен, б) плохо композируется, в) плохо поддерживает переиспользование, то приходится постоянно писать плюс/минус одинаковые куски кода, что раздражает. Code pilot помогает, но далеко не всегда ну и это не совсем то, что хотелось бы.

Update:
Из близкого к тому, что может как-то помочь — это питонячий dbt. Но это по сути темплейтер на стероидах: текстовые макросы + "компиляция". В кавычках, потому что как таковой компиляции (как MS SQL project) там, конечно, нет и близко. Но dbt закрывает лишь часть задач, и я все еще сильно сомневаюсь в том, чтобы его тащить в проект.