Делает ли функция именования в MSSQL, например, fn_myFuction дополнительной производительностью? - PullRequest
1 голос
/ 12 ноября 2010

Кто-то здесь упомянул, что нам следует избегать именования хранимых процедур на сервере MS SQL, например, sp_XXX
Поскольку при добавлении времени на сервер SQL во время проверки существует системная процедура, называемая так.Потому что все системные хранимые процедуры начинаются с sp_.

Теперь мне интересно, что в случае с функциями в MSSQL, занимают ли функции именования, такие как fn_, дополнительное время в SQL при поиске системных функций?

Ответы [ 2 ]

5 голосов
/ 12 ноября 2010

Нет, я так не думаю.

Нашел следующую ветку:

http://bytes.com/topic/sql-server/answers/78872-udf-starting-fn_

Нет.Чтобы вызвать предоставляемую системой [Определяемую пользователем функцию], вам нужно использовать ::, так это то, что ищет SQL Server.Все предоставляемые системой UDF являются табличными функциями, поскольку скалярные системные функции вообще не являются UDF.

Надеюсь, это поможет

3 голосов
/ 12 ноября 2010

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

Поскольку префикс sp_ зарезервирован для системной хранимой процедуры, и любая хранимая процедура с префиксом sp_ вызовет дополнительный поиск в базе данных MASTER.Следует также отметить, что если хранимая процедура использует то же имя в пользовательской базе данных, что и системная хранимая процедура в основной базе данных, хранимая процедура в пользовательской базе данных никогда не будет выполнена, поскольку SQL Server всегда будет сначала смотреть в основной базе данных и будет выполнять этоодин скорее один в пользовательской базе данных.

http://furrukhbaig.wordpress.com/2007/08/22/stored-procedures-factssheet/

http://msdn.microsoft.com/en-us/library/dd172115.aspx

...