10. 고급 SQL 튜닝

 

. DML 튜닝 방안

– 대량 데이터에 대해 작업할 경우 인덱스를 Unusable 상태로 변경하고 작업한 후에 인덱스를 재생성하는 것이 빠를 수 있다.

– 오라클의 수정가능 조인 뷰는 키-보존 테이블에만 입력, 수정, 삭제가 허용된다.

– 대량 데이터에 대한 UPDATE나 DELETE문의 경우 기존 데이터를 임시 테이블에 저장하고 테이블을 TRUNCATE 한 후 임시 테이블을 이용해 다시 입력하는 것이 빠르다.

 

. 대용량 배치 프로그램 속도 향상

– 인덱스를 제거했다가 작업 완료 후 다시 생성한다.

– 수정 가능 조인 뷰(Updatable Join View)나 Merge문을 활용한다.

– SQL Server라면 최소 로깅(minimal logging) 모드 Insert 기능을 활용한다.

 

. 테이블, 인덱스를 파티셔닝 하는 이유

– 가용성 향상 / 조회성능 개선 / 경합 분산

 

. 파티션 설명

– 파티션은 애플리케이션에 투명하다. 즉, 파티션되지 않은 테이블을 새롭게 파티셔닝 하더라도 쿼리를 수정하지 않아도 된다.

– 기존에 사용되던 인덱스를 파티셔닝하면 그 인덱스를 액세스하던 일부 SQL 성능이 오히려 느려질 수 있다.

– 파티션 단위로 인덱스를 재생성할 수 있다.

 

. Batch 튜닝 방안

– 개별 프로그램 측면에서도 최초 응답속도보다는 전체 처리속도 최적화를 목표로 설정해야 한다.

– 파티션과 병렬처리를 적절히 활용한다.

– 여러 배치 프로그램에서 공통적으로 사용하는 집합을 정의해 이를 임시 테이블로 생성된다.

 

. 오라클 병렬 프로세싱

– 일련의 처리 과정이 모두 병렬로 진행되도록 해야 병렬 효과를 극대화 할 수 있다.

– 옵티마이저는 병렬 프로세스 간 통신량을 최소화하려고 노력한다.

– 병렬 DML 시, Exclusive 모드 TM Lock이 걸려 해당 테이블을 갱신하는 다른 트랜잭션이 모두 블록킹되므로 주의해야 한다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다