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.
Kővári Attila - BI projekt
hozzászólás
hosszu
k, 05/24/2011 - 06:10
Permalink
Ilyen nincs már? SELECT * FR
hosszabb
k, 05/24/2011 - 16:35
Permalink
Nem mindegy? Ha jól értem, a
GaborG
cs, 05/26/2011 - 04:37
Permalink
És még gyorsabb, ha union al
Új hozzászólás