티스토리 뷰

SQL/MS-SQL

UNION과 UNION ALL의 차이

Dev-Drake 2019. 6. 27. 17:35
반응형

TABLE_A                        TABLE_B

-----------------                  -----------------

FLD1                               FLD1

-----------------                  -----------------

1                                       5

2                                       3

3                                       1

-----------------                  -----------------

 

이 때...

 

SELECT FLD1 FROM TABLE_A

UNION ALL

SELECT FLD1 FROM TABLE_B

 

하면 결과는

 

-----------------

FLD1

-----------------

1

2

3

5

3

1

-----------------

 

이 됩니다. 두 쿼리의 결과를 단순히 합친 것이죠.

 

 

그런데

 

SELECT FLD1 FROM TABLE_A

UNION

SELECT FLD1 FROM TABLE_B

 

하면 결과는

 

-----------------

FLD1

-----------------

1

2

3

5

-----------------

 

이 됩니다. 두 테이블의 결과를 합치되, 중복된 값을 제외하죠.

 

이렇게 중복을 제거하기 위해 불가피하게 '소트'를 하게 됩니다.

 

따라서 자료가 많거나 Index가 되어 있지 않은 필드를 대상으로 하게 되면

 

쿼리 시간이 길어질 수 있습니다.

 

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday