SSRS传参数问题

0
我查询报表数据的时候,我把时间直接写进sql语句没问题,可是当我把时间作为参数传入的时候,运行非常慢,好像死掉的样子,很久也没结果,请高手帮忙,急等
已邀请:
2

郑大鹏 2015-10-08 回答

前一段时间我碰到了比较类似的问题,和你说的现象挺像,一个SQL查询,直接在数据库里查询速度还可以,几秒左右,但是放到报表里以后需要好久好久,几分钟吧!后来我就通过数据库的事件查看器,追踪执行的数据库语句,发现报表会把sql语句做了一个转换,类似这样:
exec sp_executesql N'你的sql语句' 执行起来就非常慢
我最后的解决办法是修改了SQL语句的写法,解决了此问题。
或者你也可以把你的SQL语句贴出来看看能不能帮到你!
1

天涯浪子 - SSRS开发、数据仓库设计 2015-10-08 回答

可能涉及到一个参数迭代的过程。假定startdate是一个datetime类型的参数。
比如在oracle里写select aa,bb from c where time_stamp>=:startdate ,有些情况下确实会变慢。
如果碰到此类问题,可以把用参数把SQL语句组出来。
例如连接Oracle可以写成="select aa,bb from c where time_stamp>=to_date('" & format(Parameters!startdate.Value,"yyyyMMdd") & "','yyyymmdd') "   或者添加对应索引,改造下SQL试试。
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-10-08 回答

用SQLProfile监视一下TSQL,当你执行这张报表的时候。
然后把TSQL拷贝出来到SSMS里执行一看,看看执行计划就知道为什么慢了

要回复问题请先登录注册