Преимущество хранимых процедур заключается в том, что, поскольку вся обработка выполняется в базе данных, вы не подвергаете сетевые накладные расходы шунтированию промежуточных результирующих наборов назад и вперед.
Недостатком является то, что каждая система RDBMS имеет свой особый синтаксис для хранимых процедур. Реализуя свою бизнес-логику в хранимых процедурах, вы в значительной степени ограничиваете свое приложение одним продуктом базы данных, о чем вам следует помнить, если вы хотите, чтобы приложение было независимым от базы данных. Кроме того, как указал gahooa, поскольку хранимые процедуры находятся в базе данных, ваш доступ к ним в качестве разработчика может быть ограничен локальной политикой; некоторые организации разрешают только администраторам баз данных обращаться к базе данных.
@ WolfmanDragon: Я не знаю, если взгляды по сути дела замедляют процесс; Ваш пробег может варьироваться, я полагаю, в зависимости от сложности представления и СУБД, которую вы используете. Кроме того, некоторые РСУБД позволяют вам материализовать часто используемые представления, поэтому доступ к ним осуществляется так же быстро, как и к базовой таблице.