在select查询中两次调用用户定义的函数会导致效率低下吗?

时间:2016-10-10 07:14:18

标签: sql sql-server function

我有一个简单的表格,其中存储了人们的生日。我还有一个简单的标量用户定义函数,其中函数采用“Date”对象(生日)并返回int(Age)。我写了一个查询,试图选择年龄为17岁的每个条目。

在“select”查询中,“dbo.calculateAge(Birthday)”被写了两次,所以我只是想知道,这是否意味着“calculateAge”函数将被调用两次?这会导致效率低下吗?如果是,是否有更好的方法来编写此查询?

我的查询:

enter image description here

我的表:

enter image description here

我选择不在此处包含“calculateAge”函数的实现,因为我不认为它对我问的问题有用。

1 个答案:

答案 0 :(得分:1)

  

这是否意味着“calculateAge”函数将被调用两次?

不,只有一次。但是可以肯定的是,确保你的函数被声明为确定性的。

  

这会导致效率低下吗?

没有

  

如果是,是否有更好的方法来编写此查询?

没关系。