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


