2016-06-16 3 views
0

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

Будет ли писать каждый запрос в хранимой процедуре, чтобы сделать эту ситуацию лучше? Какова наилучшая практика для контроля качества SQL в приложении?

+1

Это не обязательно поможет поставить каждый запрос там, но поможет использовать те, которые, по вашему мнению, могут измениться в течение всего срока службы приложения, или которые могут быть оптимизированы умелым администратором баз данных. Вы не хотите делать жесткое и быстрое 100% правило об этом. – EJP

+0

Вы рассмотрели, как будет тестироваться Java-код? Если вы ограничиваете бизнес-логику Java позже, она будет тестироваться через модульные тесты с помощью базы данных в памяти. –

ответ

0

Как технические документы Сохраненные процедуры немного лучше, чем SQL-команды. Причина: Каждый запрос команды запуска SQL содержит следующие шаги:

  • Синтаксис Check
  • компилировать
  • Run

Но когда вы используете хранимую процедуру запроса непосредственно RUN. Хорошо знать, что каждый запрос SQL имеет план выполнения перед запуском, для хранимой процедуры этот раздел будет сохранен и непосредственно запущен. Вы можете перекомпилировать хранимую процедуру командой sp_recompile.

Смежные вопросы