0

假设我有一张桌子

MyTab (ID int, MyNo varchar(50),.....)

列上有一个索引MyNo

然后我有以下 SQL 查询:

declare @Nos varchar(100000)
set  @Nos = ',001,002,003,004,'

Select * 
from MyTab
Where CHARINDEX(',' + MyNo + ', @Nos) > 0 

当字符串@Nos很短时很好。但是如果@Nos更大,比如长度为 10000,查询性能就很差。

如何提高这种情况下的性能?或者更好的解决方案来替换查询?

4

1 回答 1

2

我发布了这种方法作为对这个问题的半开玩笑的回答。不幸的是,太多人认真对待它。虽然它可以用于临时查询,但它确实不适合生产。该问题的公认答案要好得多,也可以解决您的性能问题。

于 2013-09-12T16:34:46.583 回答