본문 바로가기
반응형

union2

[SQL 쿼리 튜닝] OR -> UNION ALL 변환 데이터베이스를 사용하다보면 많은 데이터를 갖고 있는 테이블에는 조회를 위해서 인덱스가 필요할 경우가 있다. 하지만 인덱스와는 별개로 쿼리를 좀더 튜닝을 하여 DBMS가 잘 읽을수만 있게 짜주는것만으로도 효과를 낼수가 있다. 요즘엔 DBMS 옵티마이저가 많이 똑똑해져서 실행계획을 잘 만든다고 들었다. 하지만 직접 명시해주는것만큼 확실한 방법은 없을것이다. 이번 포스팅에서는 쿼리 내의 OR조건을 UNION ALL 로 변환을 하며 쿼리를 개선하여 인덱스를 탈수 있도록 변경을 해볼 것이다. 먼저 UNION 과 UNION ALL 에 대한 개념은 아래 참고 포스팅을 참고 바란다. 일단 우선 UNION 과 UNION ALL 의 차이를 다시 소개하면. UNION은 중복제거 + 정렬까지 들어가게 된다. 즉, 연산이 필요.. 2023. 6. 26.
데이터베이스 테이블 합집합, 차집합(UNION, UNION ALL, MINUS, INTERSECT, EXCEPT) 데이터베이스를 사용하면 join이나 서브쿼리를 통해서 테이블을 합치곤 한다. 하지만 이렇게 합치는것은 수평적으로 하여 컬럼이 많아지도록 합치는 것이고, 오늘 소개할 UNION, UNION ALL, MINUS는 수직적으로 레코드들이 합쳐지는 것이다. Join에 대해서는 아래 참고 포스팅을 참고 바란다. UNION 과 UNION ALL의 차이 UNION은 두 개의 테이블을 하나로 만드는 연산이다. 두 개 테이블의 컬럼 수, 컬럼 데이터 형식이 모두 일치해야한다. UNION 연산은 두 개의 테이블을 하나로 합치면서 중복된 데이터를 제거한다. 그래서 UNION은 정렬을 발생시킨다. UNION ALL은 중복을 제거하거나 정렬을 유발하지 않는다. 둘 다 먼저 선행된 테이블의 이름을 기준으로 출력이되게 된다. 이에 .. 2023. 6. 25.
반응형