Компиляция процедур против функции в SQL Server - PullRequest
0 голосов
/ 06 декабря 2018

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

Но другой сайт утверждает, что оба они предварительно скомпилированы.Кто-нибудь может объяснить?

1 Ответ

0 голосов
/ 06 декабря 2018

На практике каждый запрос, выполняемый в SQL Server, компилируется и план выполнения кэшируется.Это действительно для хранимых процедур, пользовательских функций и прочего.Например, исключение составляет OPTION (RECOMPILE) .

Вот цитата из официальной документации Microsoft :

Подобно хранимым процедурам, пользовательские функции Transact-SQL снижают затраты на компиляцию кода Transact-SQL, кэшируя планы и используя их повторно для выполнения.

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