Когда использовать хранимки
когда они объемные и достаточно часто выполняются.
Если же они малы по размерам, а тем более выполняются "раз в два года"
то хранить их на сервере не стоит, т.к.
1. выигрыша реального не почувствуешь
2. лишнюю память, которая никогда не лишняя, у сервера сожрешь.
Хранение процедур в том же месте, где они исполняются, обеспечивает уменьшение объема передаваемых по сети данных и повышает общую производительность системы. Применение хранимых процедур упрощает сопровождение программных комплексов и внесение изменений в них. Обычно все ограничения целостности в виде правил и алгоритмов обработки данных реализуются на сервере баз данных и доступны конечному приложению в виде набора хранимых процедур, которые и представляют интерфейс обработки данных. Для обеспечения целостности данных, а также в целях безопасности, приложение обычно не получает прямого доступа к данным – вся работа с ними ведется путем вызова тех или иных хранимых процедур.
Подобный подход делает весьма простой модификацию алгоритмов обработки данных, тотчас же становящихся доступными для всех пользователей сети, и обеспечивает возможность расширения системы без внесения изменений в само приложение: достаточно изменить хранимую процедуру на сервере баз данных. Разработчику не нужно перекомпилировать приложение, создавать его копии, а также инструктировать пользователей о необходимости работы с новой версией. Пользователи вообще могут не подозревать о том, что в систему внесены изменения.
делаем выводы :)
ЗЫ: честно скопировано отсюда http://www.intuit.ru/department/database/sql/12/
основываясь на ИМХО рекомендую использовать ХР. в независимости от простоты или сложности запросов. речь не идет о "ускорении" приложения. в любом случае при правильном использовании ХР вы получите преимущество, за счет гибкости кода. вам во многих случаях просто не нужна будет перекомпиляция при изменении бизнес-правил (запросов клиентов и прочей ху%%%и). на 50000 пользователей поверьте это огромнейшее преимущество. в остальных случаях разница в выполнении минимальна, но хранимки - это всегда гораздо более удобно. по теории читайте Хендерсона и т.п. но мой совет ВСЕГДА используйте хранимые процедуры и вьюхи. НИКОГДА не давайте пользователям прямую работу с таблицами. И будет вам счастье.
Если ваша программа получит широкое распространение то наличие ХП позволит рядовым программистам на местах искать ошибки и возможно даже дописывать небольшие утилитки...
Пример успешности такого подхода 1С которая получила огромное распространение благодаря встроенному языку программирования... если для вас такой размах пока не по плечу то ХП могут стать первым шагом в этом направлении :)