【问题标题】:Reduce recompilation , sp_execute减少重新编译,sp_execute
【发布时间】:2014-05-13 17:03:26
【问题描述】:

当重新编译查询的问题时,我的服务器上的问题很糟糕,我们在这台服务器上报告,这是动态查询所必需的,我在这里研究解决这个问题的方法。

创建表 YEAR_YEAR (Y INT) INSERT YEAR_YEAR (Y) VALUES (2011) INSERT YEAR_YEAR (Y) VALUES (2012) INSERT YEAR_YEAR (Y) VALUES (2013) INSERT YEAR_YEAR (Y) VALUES (2014) EXECUTE sys.sp_executesql N'SELECT * FROM YEAR_YEAR WHERE CONVERT(NVARCHAR,Y) IN (@RAEY) ' , N'@RAEY NVARCHAR(100)', @RAEY = N'2012,2013';

当您在变量中放置单个参数时,但是当我添加逗号时没有返回任何内容,我已经从试用中进行了数十次转换,替换...

回想数据来自于report,很多都不是我自己做的,那么我就不得不去对待varchar这个硬办法了

感谢您的帮助。

【问题讨论】:

    标签: sql sp-executesql


    【解决方案1】:

    经过大量研究和反复试验,我得出了一个非常满意的结果,现在我将监控我的服务器的结果。

    EXECUTE sys.sp_executesql N'SELECT * FROM YEAR_YEAR WHERE (CHARINDEX('','' + CONVERT(VARCHAR,Y) + '','', '','' + REPLACE(@RAEY, '' '', '''') + '','') > 0) ' , N'@RAEY NVARCHAR(100)', @RAEY = N'2012,2013';

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 2011-02-24
      相关资源
      最近更新 更多