4
在查询中的多个列上调用同一个表值函数的最有效方法
我正在尝试优化一个查询,其中在20列上调用了相同的表值函数(TVF)。 我所做的第一件事是将标量函数转换为内联表值函数。 是否使用CROSS APPLY最佳执行方式对查询中的多个列执行相同的功能? 一个简单的例子: SELECT Col1 = A.val ,Col2 = B.val ,Col3 = C.val --do the same for other 17 columns ,Col21 ,Col22 ,Col23 FROM t CROSS APPLY dbo.function1(Col1) A CROSS APPLY dbo.function1(Col2) B CROSS APPLY dbo.function1(Col3) C --do the same for other 17 columns 有更好的选择吗? 可以在针对X个列的多个查询中调用同一函数。 功能如下: CREATE …