我有一个SSRS报告,它将一串县传递给存储过程。由于我必须构建报告的方式,我需要向县附加36个字符的GUID。然后我使用子字符串函数剥离存储过程中的GUID:
and county IN(Select substring(item, 1, LEN(item)-36) from fnsplit(@County, ',')
该报告在大约8秒内运行,这是对REPLACE功能的巨大改进。但我还是希望让它跑得更快。有谁知道更好的方法吗?我不允许在表格中包含索引,所以这不是一个选项。
答案 0 :(得分:0)
如果先将其加载到表变量中,然后再加入内部联接,则可能会最大化速度。
DECLARE @COUNTYLIST TABLE ([County] varchar(36) PRIMARY KEY);
INSERT INTO @COUNTYLIST ([County])
Select substring(item, 1, LEN(item)-36) from fnsplit(@County, ',')
SELECT ...
FROM ... INNER JOIN @COUNTYLIST as [CountyList]
ON ...[County] = [CountyList].[County]