我有一个如下所示的查询:
SELECT someString FROM
(
SELECT someString FROM someTable
WHERE someField = 1
) X
WHERE dbo.fnMyClrScalarFunction(X.someString) = 0
问题是查询优化器正在子查询中移动 UDF,它在相当严格的“someField = 1”条件之前应用。不幸的是,UDF 的速度并不快,这导致了糟糕的性能。有什么方法可以防止这种情况(除了使用临时表)或向 sql server 建立 UDF 很昂贵吗?
提前致谢