2022. 12. 28. 10:52 오라클
Drop Partition 구문 수행 시 SQL Plan이 변경 (19c)
Drop Partition 구문 수행 시 SQL Plan이 변경 (19c)
• 현상
➢ DROP Partition 구문을 사용한 이후 SQL Plan이 변경되는 현상 발생 (DBA_TABLES.LAST_DDL_TIME 변경 )
➢ SQL 실행계획이 재작성되면서 Bad Execution plan이 생성될 가능성 있음
• 원인
➢ _optimizer_gather_stats_on_load=true로 되어 있음
➢ CTAS 또는 Direct path insert 수행 시 자동 통계정보 수집 여부 설정 , 이 파라미터가 true라면 CTAS, Direct
path insert 수행 시에만 동작해야 하는데 , DROP Partition 등 파티션 테이블의 DDL 구문 수행 시에도 통계정보 수집이 되는 현상이 발생하여 성능 저하 이슈 발생
• 해결 방안
1. DROP Partition 수행 시에도 SQL Plan이 변경되지 않도록 파라미터를 통해 disable시킴
_optimizer_gather_stats_on_load=false 로 변경함
2. 해당 파라미터 설정 후, DBA_TABLES.LAST_DDL_TIME이 변경되지 않음
동적 통계정보의 변경으로 인해 Worst Execution plan이 생길 수 있으므로, false 권장