by 개발뉴비 [SQLServer] #SQL SERVER #WHERE절 #OR조건 #EXISTS #UNION ALL [2017.11.15 14:00:43]
/*
WHERE절 조건에서 OR 조건을 사용하는 것과 EXISTS 문에 UNION ALL을 사용하여 조회하는 것이 속도에 어떤 영향이 있는지 궁금해서 문의드립니다.
아래와 같은 다른 형태의 WHERE조건 사용시 속도차이가 많이 날까요?
*/
-- EX 1)
SELECT * FROM table_1 t1
WHERE ( (p_text = '') OR
(p_text = '1' AND t1.col_1 = 'a') OR
(p_text = '2' AND t1.col_1 = 'b' AND t1.col_2 = '*') )
-- EX 2)
SELECT * FROM table_1 t1
WHERE EXISTS (
SELECT 1 WHERE p_text_ = ''
UNION ALL
SELECT 1 WHERE p_text = '1' AND t1.col_1 = 'a'
UNION ALL
SELECT 1 WHERE p_text = '2' AND t1.col_1 = 'b' AND t1.col_2 = '*'
)