Вычисления в хранимках или в Java-коде

Поставили задачу по написанию нового отчёта или по созданию нового расчёта. Снова мучительный выбор: Java или хранимая процедура?

Чтобы было легче выбирать, нужно ответить на несколько вопросов:

  1. Сложны ли вычисления?
  2. На сколько важно быстродействие?
  3. Нужны ли юнит-тесты?

Теперь распишем преимущества и недостатки каждого из подходов.

 Вариант 1. Если всё напишем в Java

Преимущества:

  • Можно отлаживать по шагам.
  • Можно создать юнит-тесты.

Недостатки:

  • Обращение к данным будет занимать больше времени.

Вариант 2. Создадим хранимую процедуру

Преимущества:

  • Будет выполняться несколько быстрее, чем в случае Java-кода. Так как все данные будут доступны сразу.

Недостатки:

  • Трудности отладки. Пошаговая отладка исключается.
  • Трудно создать юнит-тесты.

Итог

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *