Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Работа с хранимыми процедурами

Для чего используют хранимые процедуры

      Теперь, когда вы знаете, что такое хранимые процедуры, возникает другой вопрос: для чего их использовать? На это существует множество причин, ниже приведены лишь основные.
      •     Для упрощения сложных операций (как уже говорилось в предыдущем примере) за счет инкапсуляции процессов в один блок, простой для выполнения.
      •     Для обеспечения непротиворечивости данных и вместе с тем без необходимости снова и снова воспроизводить одну и ту же последовательность шагов. Если все разработчики и приложения используют одни и те же хранимые процедуры, значит, один и тот же код будет использоваться всеми.
      •     Побочным эффектом этого является предотвращение ошибок. Чем больше шагов необходимо выполнить, тем выше вероятность появления ошибок. Предотвращение ошибок обеспечивает целостность данных.
      •     Для упрощения управления изменениями. Если таблицы, имена столбцов, деловые правила (или что-то подобное) изменяются, обновлять приходится только код хранимой процедуры и ничего больше. Побочным эффектом этого является повышение безопасности. Ограничение доступа к основным данным только через хранимые процедуры снижает вероятность повреждения данных (случайного или преднамеренного). 
      •     Поскольку хранимые процедуры обычно сохраняютсяв компилированном виде, СУБД тратит меньше времени на обработку их команд. Это приводит к повышению производительности.
      •     Существуют элементы языка SQL и некоторые возможности, реализуемые только в хранимых процедурах. Хранимые процедуры, таким образом, можно использовать для написания более гибкого и мощного кода.

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

    •     Синтаксис хранимых процедур весьма различен для разных СУБД. Написать по-настоящему переносимый код хранимой процедуры практически невозможно. Следует также упомянуть о том, что метод вызова самих хранимых процедур (их имена и метод передачи им данных) может быть достаточно переносимым, поэтому если вам необходимо перейти на другую СУБД, по крайней мере код вашего клиентского приложения, возможно, не придется изменять.
    •     Хранимые процедуры сложнее в написании, чем основные операторы SQL, их подготовка требует большей квалификации и опыта. Поэтому многие администраторы баз данных ограничивают права на создание хранимых процедур в качестве меры безопасности.

     Несмотря на вышесказанное, хранимые процедуры весьма полезны и непременно должны использоваться. В действительности многие СУБД располагают всевозможными хранимыми процедурами, которые используются для управления базами данных и таблицами. Обратитесь к документации своей СУБД, чтобы получить больше информации по данному вопросу.

Не можете написать хранимые процедуры? Тогда просто используйте их

Во многих СУБД различаются меры безопасности и права доступа, необходимые для написания хранимых процедур, и меры безопасности и права доступа, необходимые для их выполнения. И это хорошо. Если вы не намерены писать свои хранимые процедуры, используйте готовые, если они вам подходят.