EXADATA 환경에서 악성 SQL 나타날 수 있는 조건

1. With절 , Inlive View의 중첩 구문 사용에 따른 부작용 발생

– 중복 I/O가 발생

– View 사용에 따른 Rewrite Overhead 및 View Merge등 성능에 매우 불리

– 필요 시, 중간 집계 또는 모집단 임시 TABLE 생성을 통해 실체화된 Segment(TABLE)에서 I/O 수행 유도

2. 인덱스가 존재하는 대용량 Table 조인시 힌트로 제어하지 않을 경우

– Full, Parallel등의 Hint 제어를 하지 않을 경우 Plan이 변경되어 처리 지연 발생

– 이로 인해 Hash Join 형태가 최선인 상태에서 Nested Loop Join으로 Plan이 변경될 확률이 높음

3. 원장 데이터 변경 적재시 변경 분이 15%를 초과할 경우(일반적인 경우 3억건 이내임)

– DML 양이 많아 질수록 GC,Buffer Busy Waits  event등 동시성, 클러스터 관련 이벤트가 많아지며, 시스템이 점점 느려지게 됨

– Insert Append 방식으로 처리 권장

4. 무분별한 힌트 사용

– 정확한 통계가 전제되는 한 불필요한 힌트를 주지 않는 것이 관리에 유리

5. 변경 적재 시 Index를 사용한 정합성 Check

– PK 생성된 테이블에 Data를 입력할 경우 Single Block I/O, Buffer Busy, Index Maintenance, gc event 발생 등으로 처리가 지연

– 중복 발생시 정합성 체크 후 재 작업을 해야 함.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다