SQL - использование процедур для SELECT/UPDATE/INSERT/DELETE
В последнее время просматривал множество разных OpenSource проектов, с использованием SQL.
Во почти всех проектах заметил такую закономерность, использования процедур для разных запросов а ля SELECT/UPDATE/INSERT/DELETE.
Заинтересовал вопрос, почему для таких операций используют процедуры, а не просто обычные прямые запросы, сгенерированные тем же MSSQL?
В чем преимущество процедур в данном контексте?
Ответы (1 шт):
Это правильный подход, если запрос выполняется не один раз. Почитайте про использование параметризированных переменных. Простыми словами в таких процедурах запрос уже разобран сервером БД и сохранен у себя. Вы вызываете процедуру и передаете ей что-то, это что-то подставляется в параметризированную переменную в запросе, и серверу остается только одно - сделать выборку. Если же вы отсылаете серверу традиционный запрос, то сервер каждый раз его разбирает, строит план и так далее... Что увеличивает и время запроса, и потребление дополнительных ресурсов сервера. Где на промышленных серверах ресурсы принято беречь, и время запроса критично.