오라클 실행계획이 갑자기 변경되는 이유
2025. 2. 10. 20:59ㆍIT/Oracle
반응형
오라클 데이터베이스에서 SQL 실행 계획이 갑자기 변경되는 원인은 여러 가지가 있을 수 있습니다. 다음은 그 주요 원인들입니다
- 통계 정보 변경: 오라클 옵티마이저는 테이블 및 인덱스에 대한 통계 정보를 바탕으로 최적의 실행 계획을 선택합니다. 통계 정보가 변경되면 옵티마이저가 다른 실행 계획을 선택할 수 있습니다. 예를 들어, DBMS_STATS 패키지를 통해 통계가 갱신될 때 이러한 현상이 발생할 수 있습니다.
- 바인드 변수 피킹(Variable Peeking): SQL 쿼리에서 바인드 변수를 사용할 때, 처음 쿼리를 실행할 때의 바인드 변수 값에 따라 옵티마이저가 실행 계획을 결정할 수 있습니다. 이후 같은 SQL을 다른 바인드 변수 값으로 실행할 때, 데이터 분포가 다름에도 불구하고 같은 계획이 적용될 수 있어 예상치 못한 결과가 나올 수 있습니다.
- SQL 프로파일 또는 힌트 변경: 특정 SQL에 대해 프로파일이나 힌트를 적용해 실행 계획을 강제하고 있을 경우, 이 설정이 변경되면 실행 계획도 달라질 수 있습니다.
- 환경 설정 변경: 옵티마이저 관련 파라미터나 시스템 설정이 변경되면, 이는 실행 계획에 영향을 줄 수 있습니다. 예를 들어, optimizer_mode나 optimizer_index_cost_adj 등의 파라미터가 변경될 때 발생할 수 있습니다.
- 데이터베이스 구조 변경: 테이블에 인덱스를 추가하거나 제거하거나, 테이블 구조를 변경하는 등의 DDL 작업이 실행 계획에 영향을 미칠 수 있습니다.
- SQL Plan Baseline: 오라클에서 SQL Plan Baseline을 사용하고 있는 경우, 새로운 계획이 허용되거나 기존 계획이 비활성화되면 실행 계획이 변경될 수 있습니다.
- 변수 데이터의 변동: 테이블의 데이터가 급격히 증가하거나 감소하면 옵티마이저가 더 효율적인 다른 실행 계획을 선택할 가능성이 높아집니다
- 리바인딩: 커서 캐시에서 SQL 커서가 제거되거나, 쿼리가 다시 파싱될 때, 옵티마이저가 새로운 통계나 설정을 바탕으로 새로운 계획을 선택할 수 있습니다.
이러한 요인들로 인해 오라클 SQL 실행 계획이 갑자기 변경될 수 있으므로, 계획 변경이 발생한 경우에는 통계 정보와 환경 설정, 데이터 변화 등을 면밀히 분석해 원인을 파악하는 것이 중요합니다
반응형
'IT > Oracle' 카테고리의 다른 글
Oracle 19c의 주요 특징 및 12c 와의 비교 (1) | 2025.02.12 |
---|---|
Oracle 19c의 추가 및 강화된 기능 소개 (2) | 2025.02.12 |
오라클 EXIST 구문 (0) | 2025.02.10 |
SQL Merge문 성능향상 방법 (0) | 2025.02.10 |
오라클 데이터베이스에서 마리아DB(MariaDB) 접속 위한 DB Link 생성(ㅇ) (0) | 2025.02.03 |