我有一个过程,大约每秒两次。
SET @sqlString =
' SELECT foo, bar
FROM OPENQUERY(' + @OracleLinkServer + ',
''SELECT foo, bar
FROM TABLE(MyApp.UserDefinedFunction(
(MyApp.MyPackage.UserDefinedFunction
(''''' + @AccountNumber + ')))'')';
EXEC @sqlString
工作正常,除了它对我的计划缓存造成了严重破坏。
总计划:160500
最后一天添加的:159600
单次使用计划:143250
显然,每个AccountNumber
都被解释为一个唯一查询,并为此生成一个新计划,但是我找不到解决之道。 OPENQUERY
不允许使用变量,而由4个部分组成的名称将不允许我调用函数。还有其他策略吗?