[SQL 튜닝] SQL 문 단순 수정을 통한 튜닝(4): 열을 결합하여 사용하는 나쁜 SQL 문

최건우·2023년 12월 9일
0

데이터베이스/SQL

목록 보기
12/13

1. 열을 결합하여 사용하는 나쁜 SQL 문

1-1. 현황 분석

성별의 값과 1칸의 공백, 성의 값을 모두 결합한 결과가 'M Radwan'인 데이터를 조회하는 쿼리가 있다고 하자.

스크린샷에는 보이지 않았으나, 글을 작성하는 시점에 이 쿼리는 0.22초가 소요되었음을 확인했다.

튜닝 전 실행 계획은 다음과 같다.

사원 테이블에만 접근하여 데이터를 가져온다. CONCAT 조건절로 데이터에 접근하지만, type 항목이 ALL이므로 테이블 풀 스캔이 일어나 비효율적이다.

1-2. 튜닝 수행

전체 300,024건의 데이터 건수 중 조회 조건에 부합하는 데이터는 102건이다.

사원 테이블의 인덱스 현황을 확인해 보면, 아래와 같이 성별으로 구성된 인덱스가 있음을 알 수 있다. 따라서 이 인덱스를 활용하면, 데이터를 빠르게 조회할 수 있다.

이를 위해, 튜닝된 SQL 문에서는 조회 구문에서 각 성별과 성을 결합하지 않고 분리된 조건으로 조회한다.

1-3. 튜닝 결과

튜닝한 SQL 문과 수행 결과는 다음과 같다. 튜닝 전 0.22초가 걸리던 쿼리가 0.00x 초로 단축되었음을 알 수 있다.

튜닝된 쿼리는 102 건의 행에만 접근하므로, 액세스 범위가 줄었다는 것을 알 수 있다.





출처: 업무에 바로 쓰는 SQL 튜닝

profile
부족한 경험을 채우기 위한 나만의 기록 공간

0개의 댓글