Selon le moteur de base de données que vous utilisez, il peut y avoir des limites à la longueur d'une instruction.
SQL Server a une très grande limite :
http://msdn.microsoft.com/en-us/library/ms143432.aspx
ORACLE a une limite très facile à atteindre de l'autre côté.
Ainsi, pour les grandes clauses IN, il est préférable de créer une table temporaire, d'insérer les valeurs et de faire un JOIN. Cela fonctionne aussi plus rapidement.