我聽說使用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