Я тестировал затраты на использование простой функции внутри запроса, потому что я читал, что это замедляет запросы, поэтому я сделал функцию sum и протестировал ее в таблице чисел (100000 номеров). Когда я увидел результаты, я смутился, потому что я не видел никакой разницы.Функции производительности внутри запросов
У меня есть причина, по которой я не вижу прироста производительности, когда я не использую функцию ...?
Это моя функция:
create function [dbo].[calculator]
(
@a bigint,
@b bigint
)
returns bigint
as
begin
return @a + @b;
end
А вот запросы:
declare @top bigint = 100
select
n.n,
n2.n,
dbo.calculator(n.n,n2.n)
from dbo.Nums100 n
cross join dbo.Nums100 n2
where dbo.calculator(n.n,n2.n) < @top;
select
n.n,
n2.n,
n.n+n2.n
from dbo.Nums100 n
cross join dbo.Nums100 n2
where n.n + n2.n < @top;
select
n.n,
n2.n,
calc.s
from dbo.Nums100 n
cross join dbo.Nums100 n2
cross apply(values(dbo.calculator(n.n,n2.n)))calc(s)
where calc.s < @top;
Почему вы ожидаете увидеть прирост производительности, используя функцию вместо поточного SQL? –