1
我们通过SQL Server 2008的支持,我们有一个应用程序,用户可以选择列表要搜索的项目,并根据这些项目获取所有项目。我们使用了两种技术:
SELECT * FROM mytable WHERE myval IN ('A', 'B', 'C')
和
INSERT INTO tempTable (tempvalue) ('A'), ('B'), ('C')
SELECT * FROM mytable m INNER JOIN tempTable t WHERE m.myval = t.tempvalue
第一个选项是比较容易,肯定的,但一旦用户选择了50个值表现是可怕的。我们正在谈论如何取消IN,因为性能会迅速下降。
那么,为什么IN执行那么糟糕?这是典型的还是与我们的设置有关的?
http://stackoverflow.com/questions/1200295/sql-join-vs-in-performance –