2014-02-13 5 views
0

Если я использую функцию SQL в выражении select, это будет влиять на производительность? Должен ли я использовать вспомогательный запрос или UDF в инструкции Select, в каком случае запрос будет наиболее оптимизирован?SQL UDF и оптимизация запросов

+1

Также [прочитайте здесь] (http://sqlserverplanet.com/optimization/user-defined-functions-and-performance) –

ответ

1

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

+0

oops, ok alreay ответил ... – m0n0ph0n

1

Почти всегда подзапрос выполняется намного лучше, чем UDF.

+1

, тогда в чем цель UDF на SQL-сервере? Где они подходят и используются в большинстве случаев? – dnxit

+1

@Afzal С верхней части головы вы используете тогда, когда вам нужно повторно использовать код или когда вам нужно сломать сложную логику в модули. Когда база данных мала, может быть более важно ее быстро развертывать, не беспокоясь о производительности. –

Смежные вопросы