Хранимые процедуры и функции

Что является различиями между хранимыми процедурами и функциями.

Каждый раз, когда там более вводятся, выходные параметры, я иду для хранимой процедуры. Если это будет только один, то я пойду для функций.

Помимо этого, там какая-либо проблема производительности, если я использую больше хранимых процедур? Я волнуюсь, как я имею близко к 50 хранимым процедурам в моем проекте.

Как они отличаются концептуально.

Заранее спасибо!

ОТРЕДАКТИРОВАННЫЙ:-

Когда я выполнил вычисление в хранимой процедуре и в функциях, я нашел, что в хранимых процедурах требуется 0,15 секунды, в то время как в функции требуется 0,45 секунды.

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

Подставляемые функции выполняются более быстрый, чем strored процедуры. Я думаю, это вызвано тем, что мультиизбранные функции не могут использовать statastics, который замедляет их, но встроенные функции табличного значения могут использовать статистику.

6
задан Drew 9 October 2013 в 02:57
поделиться

2 ответа

Разница между хранимой процедурой и функциями в SQL Server. ..

http://www.dotnetspider.com/resources/18920-Difference-between-Stored-Procedure-Functions.aspx

Разница между хранимыми процедурами и функциями, определяемыми пользователем [UDF]

http: / /www.go4expert.com/forums/showthread.php?t=329

Сохраненные процедуры и функции

http://searchsqlserver.techtarget.com/tip/Stored-procedures-vs-functions

Что - это различия между хранимой процедурой и функциями в ...

http://www.allinterview.com/showanswers/28431.html

Разница между хранимой процедурой и функциями

http: //www.sqlservercentral. com / Forums / Topic416974-8-1.aspx

2
ответ дан 17 December 2019 в 18:09
поделиться

Чтобы принять решение об использовании одного из двух методов, помните о фундаментальном различии между ними: хранимые процедуры предназначены для возврата своего результата приложению. UDF возвращает табличные переменные, а SPROC не может вернуть табличную переменную, хотя может создать таблицу. Еще одно существенное различие между ними заключается в том, что UDF не может изменить окружение сервера или окружение вашей операционной системы, в то время как SPROC может. С операционной точки зрения, когда T-SQL встречает ошибку, функция останавливается, в то время как T-SQL игнорирует ошибку в SPROC и переходит к следующему оператору в вашем коде (при условии, что вы включили поддержку обработки ошибок). Вы также обнаружите, что хотя SPROC можно использовать в предложении XML FOR, UDF нельзя.

Если у вас есть операция, такая как запрос с предложением FROM, которая требует получения набора строк из таблицы или набора таблиц, то подходящим выбором будет функция. Однако если вы хотите использовать тот же набор рядов в своем приложении, то лучшим выбором будет хранимая процедура.

Существует довольно много споров о преимуществах производительности UDFs по сравнению с SPROCs. Вы можете быть склонны считать, что хранимые процедуры добавляют больше накладных расходов на ваш сервер, чем UDF. В зависимости от того, как вы пишете код и какой тип данных обрабатываете, это может быть не так. Всегда полезно проверить свои данные в важных или требующих много времени операциях, опробовав на них оба типа методов.

1
ответ дан 17 December 2019 в 18:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: