¿Qué es más rápido?SQL Server: Seleccione en vs o?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
¿Qué es más rápido?SQL Server: Seleccione en vs o?
SELECT UserName
FROM dbo.UserTable
WHERE UserID in (1,3,4)
SELECT UserName
FROM dbo.UserTable
WHERE UserID = 1
OR UserID = 3
OR UserID = 4
Debido a la optimización de las consultas de estos se ejecutan a la misma velocidad, ya que son lógicamente equivalentes de SQL Server.
prefiero sin embargo la sintaxis IN por brevedad y legibilidad.
¿En lugar de Or/In hay alguna manera de consultar? que funcionará más rápido? – Worgon
@Worgon si el número de valores es grande, puede poner los valores distintos en una tabla temporal indexada y unirse a eso. –
En realidad es lo mismo.
Si visualiza el plan de ejecución estimado, verá que está realizando la misma acción.
Esto es relevante cuando se trata de producir SQL a través de Linq. Hay algunos casos donde el sql creado tiene la forma de: campo = 'xxx' O campo = 'yyy'.
¿Puedes aclarar eso? No tengo idea de lo que estás diciendo. – tbodt
http://stackoverflow.com/questions/3074713/in-vs-or-in-the-sql-where-clause – rdo