Когда использовать какие функции против Sprocs - PullRequest
2 голосов
/ 13 февраля 2010

t-sql

Я пытался прочитать разницу между UDF и sprocs, здесь

http://realfantasy.wordpress.com/2009/01/05/sql-server-user-defined-function-udf-vs-stored-procedure-sp/

Знаете ли вы больше различий?Когда использовать что?

Спасибо

Ответы [ 2 ]

7 голосов
/ 13 февраля 2010

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

1 голос
/ 13 февраля 2010

Обратите внимание, что эта статья не совсем корректна. Вы можете использовать такие функции, как GETDATE () в UDF в SQL Server 2005 и выше. Это был SQL Server 2000, где вы не могли.

Я бы хотел знать, что в зависимости от того, как вы используете UDF, они могут оказать большое негативное влияние на производительность. Поскольку вы можете вызывать их как встроенные в запросе, если вы сделаете это (например, в предложении WHERE), чтобы применить условие, то это может потенциально привести ко многим многочисленным вызовам этой функции один раз для каждой строки. Это может привести к ужасной производительности, поэтому стоит иметь в виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...