User Tools

Site Tools


Stored Procedures a bad practice at one of worlds largest IT software consulting firms?

https://softwareengineering.stackexchange.com/questions/65742/stored-procedures-a-bad-practice-at-one-of-worlds-largest-it-software-consulting

top, 294 votes:

My architectural decision is to leave all logic in the business layer of the application and employ stored procedures in a targeted manner to improve performance where benchmarking indicates it is warranted.

Хранимые процедуры отлично подходят для ускорения определенных операций с БД. Мое архитектурное решение состоит в том, чтобы оставить всю логику на бизнес-уровне приложения и целенаправленно использовать хранимые процедуры для повышения производительности там, где, как показывает сравнительный анализ, это оправдано.

next after top, 187 votes

Don't put complex logic beyond data gathering (and perhaps some transformations) in them. It is ok to put some data massaging logic in them, or to aggregate the result of multiple queries with them. But that's about it. Anything beyond that would qualify as business logic which should reside somewhere else.

Не вкладывайте в них сложную логику, помимо сбора данных (и, возможно, некоторых преобразований). Можно поместить в них некоторую логику обработки данных или объединить с ними результат нескольких запросов. Но это все. Все, что выходит за рамки этого, можно квалифицировать как бизнес-логику, которая должна находиться где-то еще.

51 votes:

Business and application logic should be in the code not in the database. Putting logic in the DB is mixing up concerns.

Distributed business logic takes you off of the highway of good practice, straight into the lane of lunacy

Распределенная бизнес-логика уводит вас с дороги передовой практики прямо в полосу безумия