我的报告很慢,并且已将问题隔离到包含CROSS APPLY的数据集:
SELECT VALS = LTRIM(stuff(
(
select distinct ', ' + ltrim(rtrim(VAL))
FROM
SELECT t1.ID,t2.VAL FROM dbo.t1 t1
CROSS APPLY dbo.(ID) t2
for XML PATH('')
),1,1,''))
此查询在SQL中通常只需15秒,但从SSRS运行时需要15分钟。为什么呢?
编辑:
更改为使用@TEMP表在开始时插入值,然后在select中查询它,我们将恢复正常处理时间。