Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Когда использовать хранимки

10K
18 мая 2007 года
Puchkoff
21 / / 02.01.2006
Подскажите, когда использование хранимых процедур обоснованно, а когда это не нужно. Если для модификации единовременно большого количество строк дает эффект, то допустим для модификации одной записи? Для выборок как сложных, так и простых стоит ли использовать? Или же использование SP в любом случае ускоряет работу приложения, в отличие создания sql-кода в самом приложении?
12K
04 июня 2007 года
__AleXX__
133 / / 02.04.2007
я считаю, что, как правило, хранимые процедуры стоит использовать,
когда они объемные и достаточно часто выполняются.

Если же они малы по размерам, а тем более выполняются "раз в два года"
то хранить их на сервере не стоит, т.к.
1. выигрыша реального не почувствуешь
2. лишнюю память, которая никогда не лишняя, у сервера сожрешь.
10K
26 июня 2007 года
Puchkoff
21 / / 02.01.2006
Спасибо за мнение
337
26 июня 2007 года
shine
719 / / 09.06.2006
Использование хранимых процедур позволяет четко разделять серверную часть приложения и базу данных. SQL-запросы относятся к БД и будет логично хранить их именно там. Поэтому используйте ХП как можно больше.
92
26 июня 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата:

Хранение процедур в том же месте, где они исполняются, обеспечивает уменьшение объема передаваемых по сети данных и повышает общую производительность системы. Применение хранимых процедур упрощает сопровождение программных комплексов и внесение изменений в них. Обычно все ограничения целостности в виде правил и алгоритмов обработки данных реализуются на сервере баз данных и доступны конечному приложению в виде набора хранимых процедур, которые и представляют интерфейс обработки данных. Для обеспечения целостности данных, а также в целях безопасности, приложение обычно не получает прямого доступа к данным – вся работа с ними ведется путем вызова тех или иных хранимых процедур.


Подобный подход делает весьма простой модификацию алгоритмов обработки данных, тотчас же становящихся доступными для всех пользователей сети, и обеспечивает возможность расширения системы без внесения изменений в само приложение: достаточно изменить хранимую процедуру на сервере баз данных. Разработчику не нужно перекомпилировать приложение, создавать его копии, а также инструктировать пользователей о необходимости работы с новой версией. Пользователи вообще могут не подозревать о том, что в систему внесены изменения.



делаем выводы :)

ЗЫ: честно скопировано отсюда http://www.intuit.ru/department/database/sql/12/

1
26 июня 2007 года
kot_
7.3K / / 20.01.2000
Цитата: Puchkoff
Подскажите, когда использование хранимых процедур обоснованно, а когда это не нужно. Если для модификации единовременно большого количество строк дает эффект, то допустим для модификации одной записи? Для выборок как сложных, так и простых стоит ли использовать? Или же использование SP в любом случае ускоряет работу приложения, в отличие создания sql-кода в самом приложении?


основываясь на ИМХО рекомендую использовать ХР. в независимости от простоты или сложности запросов. речь не идет о "ускорении" приложения. в любом случае при правильном использовании ХР вы получите преимущество, за счет гибкости кода. вам во многих случаях просто не нужна будет перекомпиляция при изменении бизнес-правил (запросов клиентов и прочей ху%%%и). на 50000 пользователей поверьте это огромнейшее преимущество. в остальных случаях разница в выполнении минимальна, но хранимки - это всегда гораздо более удобно. по теории читайте Хендерсона и т.п. но мой совет ВСЕГДА используйте хранимые процедуры и вьюхи. НИКОГДА не давайте пользователям прямую работу с таблицами. И будет вам счастье.

1
26 июня 2007 года
kot_
7.3K / / 20.01.2000
кста. запросы на прямую и запросы из хранимой процедуры для большинства серверов прдпочтительней запросы из ХП. но при этом надо учитывать что необходимо перестраивать план запросов для более эффективной работы. и при правильном подходе вы получаете прирост в производительности примерно в 30%
8.9K
26 июня 2007 года
Yan Tsys
23 / / 07.01.2005
Ну и кроме того создать программу без ошибок нереально :)
Если ваша программа получит широкое распространение то наличие ХП позволит рядовым программистам на местах искать ошибки и возможно даже дописывать небольшие утилитки...
Пример успешности такого подхода 1С которая получила огромное распространение благодаря встроенному языку программирования... если для вас такой размах пока не по плечу то ХП могут стать первым шагом в этом направлении :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог