假设我有一张桌子
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,则查询性能非常糟糕。
如何改善此案例的表现?或者更好的解决方案来替换查询?
答案 0 :(得分:2)
我发布了这种方法作为对此question的诙谐回答。不幸的是,有太多人认真对待它。虽然对于临时查询是可以的,但它实际上不适合生产。在这个问题上接受的答案要好得多,也可以解决你的性能问题。