我听说使用IN子句会伤害性能,因为它没有正确使用索引。请参阅下面的示例:是否使用WHERE IN伤害查询性能?
SELECT ID, Name, Address
FROM people
WHERE id IN (SELECT ParsedValue FROM UDF_ParseListToTable(@IDList))
使用下面的表格获取这些结果会更好吗?
SELECT ID,Name,Address
FROM People as p
INNER JOIN UDF_ParseListToTable(@IDList) as ids
ON p.ID = ids.ParsedValue
这是否取决于您使用的是哪个版本的SQL Server?如果是的话哪些受到影响?
类似http://stackoverflow.com/questions/761150/how-does-the-in-predicate-work-in-sql – 2010-01-27 20:59:14