|
쿼리의 본질과 성능 튜닝에 대한 37가지 이슈
책 첫페이지에 적혀있다.
지금 당신의 데이터베이스는 최고의 성능을 발휘하고 있습니까?
왜 SQL튜닝이 필요한가? 애플리케이션을 개발하려면 원하는 대로 성능이 나오지 않을 때 가장 많은 문제의 원인이 되는 동시에 간단한 수정으로 성능을 향상시킬 수 있는 부분이 바로 SQL이다. 또한 제대로 알고 있다면 얼마든지 쉽게 수정하고 최적화된 문장을 사용할 수 있지만 그렇지 않으면 상당히 고생할 수 있는 부분이 SQL이다.
1.디자인 튜닝 2.애플리케이션 디자인 튜닝 3.DBMS 시스템 튜닝 4.시스템 튜닝
시스템 성능 저하를 가져오는 원인 -부적절한 스키마 설계는 요구조건에 맞지 않는 과도한 SQL을 만들어낸다. 이런 과도한 SQL은 시스템 자원을 많이 소비하여 성능에 나쁜 영향을 주게 된다. -나쁜 트랜잭션 설계는 락킹 문제를 야기하며 경우에 따라 병렬 처리를 제대로 수행할 수 없게 만들기도 한다. -나쁜 커넥션 관리는 느린 응댭시간을 야기하며 시스템을 신뢰하지 못하게 만든다.
DML에서 SQL 처리 과정 1. 커서 생성 2. SQL 파싱 5. 변수 바인드 7. SQL 실행 8. 커서 닫기
6. SQL 문 병렬 처리
-select 쿼리의 경우, 다음과 같은 단계 부가적 필요 3. 쿼리의 결과 기술 4. 쿼리 Output 정의 5. 쿼리의 로우 패치
옵티마이저의 SQL 처리 단계 1. 표현식과 조건의 평가 2. SQL 문 변형 3. 옵티마이저 모드 선택 4. 액세스 경로 선택 5. 조인 순서 선택 6. 조인 방법의 선택
SQL 튜닝사례 1.매출 데이터를 월별로 나누어 파티션 테이블 생성 2.지역별로 파티션 테이블 생성 3.매출일별/사원 번호별 파티션 테이블 생성
SQL 튜닝 실무와 고려 사항
|