SQL Server: UNION Vs OR

Si andamos buscando mejorar la performance de nuestras queries.

Una de las cosas que más empobrece el query plan es utilizar una query del tipo:

SELECT
FROm dbo.Table A
WHERE columX = 1 oR columnX = 2

Es muchísimo más eficiente si transformamos la query en:

SELECT
FROm dbo.Table A
WHERE columX = 1
UNION
SELECT
FROm dbo.Table A
WHERE columX = 2

Esto se debe a que si partimos la query en dos, el predicado en cada una de las partes será mucho más selectivo y tendrá más opciones de utilizar index seeks en lugar de scans.

Espero que os sirva,

El Amigo Informático.

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada.