计划重复使用以进行远程查询

时间:2018-07-03 18:33:19

标签: sql openquery

我有一个过程,大约每秒两次。

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个部分组成的名称将不允许我调用函数。还有其他策略吗?

0 个答案:

没有答案