假设我有一张桌子
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,查询性能就很差。
如何提高这种情况下的性能?或者更好的解决方案来替换查询?