我有一个 sql 查询,在 ssms 中运行大约需要 15 秒,但是当我在 ssrs 中运行时,需要 5-7 分钟。从我读过的所有内容来看,这似乎来自“参数嗅探”,所以我在查询中声明了变量以绕过它,但是我仍然遇到多个参数的问题。
和:
我传入的参数是:@Places
create table #places (place varchar(50))
insert into #places select Val from dbo.parseValues(@Places,',')
select * from mytable m
inner join #places p on p.place = m.place
drop table #places
如果我在运行报告时只选择一个位置,则此方法有效,否则会引发错误:
有关此错误的详细信息,请导航到本地服务器计算机上的报告服务器,或启用远程错误 ---------------------------- 查询数据集“dataset1”执行失败。(rsErrorExecutingCommand) ---------------------------- 报告处理过程中发生错误。(rsProcessingAborted)
ParseValues 函数来自http://visakhm.blogspot.in/2010/02/parsing-delimited-string.html
有人有其他想法吗?