Кто-нибудь может сказать плюсы и минусы хранимых процедур И плюсы и минусы хранимых процедур Java?
Кто-нибудь может сказать плюсы и минусы хранимых процедур И плюсы и минусы хранимых процедур Java? И как это проверить.
С наилучшими пожеланиями!
2 ответа
Аргументы за и против хранимых процедур имеют тенденцию разделяться на то, что, по вашему мнению, является правильным ответом на вопрос: принадлежит ли бизнес-логика базе данных или приложению? Я постараюсь быть нейтральным в изложении аргументов. Если мне это удастся, некоторые из моих плюсов и минусов будут противоречить друг другу.
PRO
- Хранимые процедуры облегчают обмен кодом базы данных между приложениями.
- Совместное расположение логики, связанной с данными, с данными облегчает применение бизнес-правил в приложениях. Этот подход дает привилегию владельцу данных перед пользователем данных.
- Хранимые процедуры используют язык, специально разработанный для программирования баз данных.
- Хранимые процедуры масштабируются с базой данных.
ПРОТИВ
- Бизнес-логика не входит в базу данных.
- Хранимые процедуры написаны на специализированных и неуклюжих языках программирования, которые средний разработчик не заинтересован в изучении.
- Мы не можем просить администратора баз данных писать хранимые процедуры, потому что администраторы ненавидят разработчиков.
- Хранимые процедуры выполняются в базе данных, и база данных является узким местом.
Многие из этих общих пунктов также применимы к хранимым процедурам Java. Я написал ответ на ваш связанный вопрос, так что эти "за" и "против" могут показаться вам знакомыми.
PRO
- Хранимые процедуры Java позволяют нам расширять функциональность, доступную для программ баз данных.
- В частности, это может позволить нам более гибко интегрировать операции в базе данных и доменах ОС.
- Многие разработчики знают, как писать на Java.
- Хранимые процедуры Java позволяют нам развертывать наше приложение базы данных в разных продуктах СУБД.
ПРОТИВ
- Java не работает так же хорошо, как собственный код базы данных.
- Хранимые процедуры Java влекут за собой написание специального кода, который дублирует встроенную функциональность.
- Java не приспособлена для операций с базами данных.
- Java может создавать проблемы безопасности. особенно когда дело доходит до запуска программ в ОС из базы данных.
Следующее справедливо для собственных хранимых процедур и хранимых процедур Java: код, написанный разработчиками без понимания того, как работают базы данных, может работать очень плохо. Это в равной степени относится к встроенным интерфейсным инструментам или инструментам ORM, настроенным без соответствующего уровня знаний. Однако такая ситуация менее вероятна при использовании собственных хранимых процедур, поскольку их функциональность направлена на создание эффективных приложений баз данных.
Хранимые процедуры про:
-Secure
Производительность и масштабируемость
-Позволяет вносить изменения в один уровень (сама база данных, а не фактический код интерфейса / веб-страницы)
-Можно написать сценарий или перенести легко