SQL 튜닝 실습(2)
-
[SQL 튜닝 실습] SQL 튜닝 중급 5
대소문자가 섞인 데이터와 비교하는 나쁜 SQL문 튜닝 전 SQL문 튜닝 전 SQL문은 사원테이블에서 입사일자가 1990년 이후이고 이름이 MARY인 사원정보를 조회하는 쿼리로 MARY와 1990-01-01은 화면에서 입력된 변숫값이므로 매번 입력되는 영문의 대소문자는 고정되지 않는다. select 이름, 성, 성별, 생년월일 from 사원 where lower(이름) = lower('MARY') and 입사일자 >= STR_TO_DATE('1990-01-01', '%Y-%m-%d') 튜닝 전 실행계획 where 조건문에 이름과 입사일자 컬럼이 명시되어 있지만 테이블 풀 스캔으로 수행된다 이름 컬럼은 기본적으로 lower() 함수가 가공하므로 이름 컬럼으로 만들어진 인덱스가 존재하더라도 활용은 불가능하다...
2021.08.10 -
[SQL 튜닝 실습] SQL 튜닝 준비 4
PRIMARY explain select 사원1.사원번호, 사원1.이름, 사원1.성 from 사원 as 사원1 where 사원1.사원번호 = 100001 union all select 사원2.사원번호, 사원2.이름, 사원2.성 from 사원 as 사원2 where 사원2.사원번호 = 100002; SUBQUERY 독립적으로 실행되는 서브쿼리로 SELECT절의 스칼라 서브쿼리와 WHERE 절의 중첩 서브쿼리일 경우에 해당 explain select ( select count(*) from 부서사원_매핑 as 매핑 ) as 카운트, ( select max(연봉) from 급여 ) as 급여; 2번과 3번의 id값의 서브쿼리는 각각 독립적으로 실행된다. DERIVED FROM 절에 작성된 서브쿼리로 FROM ..
2021.08.09