Ответ
В контексте баз данных хранимая процедура (Stored Procedure) — это предварительно скомпилированный и сохраненный на сервере БД набор SQL-операторов, который выполняется как единая программа.
Ключевые характеристики:
- Хранится на сервере БД: Логика находится внутри самой СУБД (MySQL, PostgreSQL, MS SQL).
- Выполняется на стороне сервера: Это снижает сетевой трафик, так как вместо отправки множества запросов приложение вызывает одну процедуру.
- Может принимать параметры и возвращать результаты.
- Повышает безопасность: Можно давать права на выполнение процедуры, не открывая прямой доступ к таблицам.
Пример создания и вызова в MySQL:
-- Создание процедуры
DELIMITER //
CREATE PROCEDURE GetUserOrders(IN userId INT)
BEGIN
SELECT * FROM orders WHERE user_id = userId;
END //
DELIMITER ;
-- Вызов процедуры из приложения
CALL GetUserOrders(123);
Плюсы: Производительность для сложных операций, централизация бизнес-логики, безопасность. Минусы: Привязка логики к конкретной СУБД (сложность миграции), трудности отладки и тестирования по сравнению с кодом приложения.