gpt4 book ai didi

sql-server - 在 SQL Server : sqrt or pow? 中使用什么更好

转载 作者:行者123 更新时间:2023-12-02 14:47:03 26 4
gpt4 key购买 nike

在 SQL Server 中使用哪个更有效:pow(x,1/2)sqrt(x)?哪一种成本更低,哪一种更快?

最佳答案

数学上: SQRT 只是 POWER 的一种特殊形式,使用 1/2 作为指数

但是在SQL Server中,实现是不同的。 POWER 能够将任何浮点作为第二个参数,因此检测特殊情况并针对每种特殊情况进行不同的优化(p2=1=>identity 和 p2=0.5=>sqrt)使 POWER 变慢比它需要的要多。

如果您需要平方根,请使用 SQRT。 POWER 明显慢了约 15%

注意:请确保您使用的是 POWER 而不是 POW,并使用 0.5 而不是 1/2(字面意义),因为 1/2 = 0

比较测试(以及 SQL Server 2005 的计时):

declare @dummy float -- to hold the result without generating resultset
declare @t1 datetime, @t2 datetime, @t3 datetime
declare @a float
set @a = rand()*1000000
declare @i int

select @t1 = getdate()
set @i = 0
while @i < 10000000
begin
select @dummy= sqrt(@a)
set @i = @i + 1
end

select @t2 = getdate()

set @i = 0
while @i < 10000000
begin
select @dummy= power(@a, 0.5)
set @i = @i + 1
end
select @t3 = getdate()

select
Time_SQRT = datediff(ms, @t1, @t2),
Time_POWER = datediff(ms, @t2, @t3)

/*
Time_SQRT Time_POWER
----------- -----------
14540 16430
14333 17053
14073 16493
*/

关于sql-server - 在 SQL Server : sqrt or pow? 中使用什么更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com