我有一个动态创建的Query,因为我们需要检查where子句中的int列表。
SELECT a, b From table where a in(1,5,98,34,2)
这创造了许多单一用途计划。我看了一个表值函数,它接受一个csv并创建一个表。此查询如下所示:
SELECT a, b From table where a in(SELECT Word FROM dbo.fn_splitStrings('1,5,98,34,2',','))
这只会创建一个查询计划,但根据SET STATISTICS TIME ON,它大约慢10倍。
有人知道如何改善这个吗?