Melyik a gyorsabb: Union vagy OR?
Lejegyzetelem ide, hogy néha jobb eredményt ad ha a WHERE feltételben megadott szűréseket szétbontjuk, és két vagy több lekérdezés uniójával állítjuk elő. Mutatom.
--Query 1 : OR
SELECT * FROM Sales.SalesOrderDetail
WHERE
ProductID = 714 OR
ProductID =709 OR
ProductID =998 OR
ProductID =875 OR
ProductID =976 OR
ProductID =874
--Query 2 : UNION
SELECT * FROM Sales.SalesOrderDetail
WHERE ProductID = 714
UNION
SELECT * FROM Sales.SalesOrderDetail
WHERE ProductID = 709
UNION
SELECT * FROM Sales.SalesOrderDetail
WHERE ProductID = 998
UNION
SELECT * FROM Sales.SalesOrderDetail
WHERE ProductID = 875
UNION
SELECT * FROM Sales.SalesOrderDetail
WHERE ProductID = 976
UNION
SELECT * FROM Sales.SalesOrderDetail
WHERE ProductID = 874
Mikor ad jobb eredményt az egyik vagy a másik megoldás? Ez sajnos a lekérdezésektől függ, így ki kell próbálni. Mindenesetre lejegyzetelem ide, hogy alternatívaként jó lehet majd optimalizálásnál. További részletek az sql-server-performance.com-on.