Обновить
1
0
Yanush Kozlovskiy@yanushu

Аналитик в IT, работаю с low-code Greendata

Отправить сообщение

Добрый день! Спасибо за ваш комментарий. SQL в немилость я никоем образом не поставил. Я написал непосредственно о "чрезмерном использовании SQL". Ниже по списку укажу тезисы, которые чуть шире раскроют данную тему.

  1. Использовать SQL внутри алгоритмов позволяют 4 функции: filterSours, queryForObjectOrNull, queryForList и script.

  2. Все эти функции применяются в зависимости от поставленной задачи.

  3. Их использование не запрещено (иначе зачем иметь возможность ими пользоваться).

  4. В случае данного тезиса "чрезмерного использовании SQL", идет речь о случаях, когда c помощью функции script проставляют булево значение у логического атрибута, того же Типа объекта, что используется как базовый, что являет собой избыточность.

  5. Также при построении алгоритма, в особенности сложных конструкций, следует не забывать об использовании Структур данных (подробнее про них тут).

  6. Например алгоритмы не могут нативно выделить максимальную и минимальную дату, аналитик начинает использовать SQL, хотя здесь можно использовать Очередь (функция ArrayDeque).

  7. Также если вы используете SQL, то стоит следить не только за самим синтаксисом SQL, но также не стоит забывать про индексирование полей (которые используются в блоке "where"). Аналитики часто об этом забывают.

  8. Если речь идет об очень большом количестве данных, которые по логике должны хранится в таблицах наследованных от Примитивного объекта с суррогатным ключом (или без). И вам необходимо внутри алгоритма через цикл отфильтровать данные, то можете смело использовать filterSours.

  9. Нельзя использовать функцию script для генерации экземпляров у Типов объектов, наследованных от таблицы Объект. Такой подход приводит к возникновению блокировок.

  10. Аналитики не всегда осмысленно пишут SQL запросы, до такой степени, что может привести к декартовому произведению, что создает огромную нагрузку на сервер sql, от чего все запросы и пользовательские и системные встают в очередь и приложение либо не работает вообще, либо работает с большими тормозами. (Был личный опыт в разборе проблемы).

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

Благодарю за совет)

Информация

В рейтинге
Не участвует
Откуда
Пермь, Пермский край, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Системный аналитик, Программный аналитик
Ведущий
SQL
Java
ООП
PostgreSQL
Groovy