
지난 1편에서 성능튜닝을 왜 해야하는지와 실행계획을 분석하는 방법에 대해서 살펴보았다. 실행계획의 정보를 보면서 어떤 것을 통해 성능을 개선할 수 있는지 약간은 감이 왔을 것이다. 그럼 이 분석한 실행계획을 바탕으로 정말 성능 개선을 해보자! ❓ 그럼 어떻게 실행되고 있는 SQL이 좋고 나쁜지 구분할 수 있을 까? 명확히 실행 계획 보고 성능 개선이 필요한지 선 그어 구분하긴 어렵다. 하지만 각자 상황에 맞게 검토 대상 추출이 필요하다. 자세한 내용은 노션을 참고하자. 위 실행계획의 특정 값에 대해서 설명하자면, 다음과 같다. 1. DEPENDENT SUBQUERY, DEPENDENT UNION (select_type) union, union all을 사용하는 서브쿼리가 메인 테이블의 영향을 받는 경우로..

어떻게 DBMS가 SQL 쿼리를 실행하는지에 대해서 알아 볼 것이다. 어떻게 '인덱스'라는 것으로 쿼리를 최적화 하는지를 다룰 것이다. 1. 인덱스(Index)란 무엇인가 - 인덱스란 DBMS나 SQL을 사용하는 툴이 제공하는 피처이다. 이 인덱스를 통해서 쿼리의 속도와 성능을 증가 시킬 수 있다. WHERE문을 사용하여 조건에 해당하는 것을 쿼리할 때, 인덱스가 이 검색하는 것을 도와주는 역할을 한다. WHERE문이 없는 쿼리는 테이블 전체를 가져 오기 때문에 더 빠르게 하지 않는다. 위의 그림에서 볼 수 있듯, WHERE + 조건을 통해서 쿼리 할 때, 테이블의 모든 row를 기준에 맞는지 검색해야 하는데, entry가 많고 큰 테이블일 경우 이 모든 row를 검색하는 것이 매우 느리고 비효율적이 될..
- Total
- Today
- Yesterday