통계 정보 반영 관리 기법 (oracle 11g ~ )
과거의 version에서는 통계정보가 수집이 되면 바로 SQL Plan이 바뀔 수가 있었다. 일반적으로는 같은 조건에서 같은 방식으로 통계정보를 수집하는 경우엔 새로이 생성된 SQL Plan은 기존의 것과 동일할 것이다. 하지만, 경우에…
DB Admin Knowhow
과거의 version에서는 통계정보가 수집이 되면 바로 SQL Plan이 바뀔 수가 있었다. 일반적으로는 같은 조건에서 같은 방식으로 통계정보를 수집하는 경우엔 새로이 생성된 SQL Plan은 기존의 것과 동일할 것이다. 하지만, 경우에…
정확한 통계정보 수집은 Optimal Plan을 생성하기 위한 필수 요건이다. 오라클 DBMS에서는 Cost-Based Opmizer 의 완벽한 기능을 위해 다양한 통계정보 수집방법을 구사할 수 있다. 대표적인 예가 Histogram으로 Skew된 Data에 대한 정확한 통계수집이 가능하다. 10g에서는 통계정보 수집을 자동화 framework을 제공하여 DBA들에게 편의성을 제공하기도 했다. Oracle Database 11g에서는 새로운 통계정보 수집방식을 추가하여 고객의 다향한 Data 특성을 반영하게 되었고 보다 정확한 통계정보를 기반으로 보다 정확한 Optimal Plan의 생성이 가능하게 되었다. 새롭게 추가된 통계정보 수집방식은 “Extended Statistics” 와 “Function-Based Statistics” 이다. Extended Statistics: 한 테이블 내의 여러 column을 하나의 group으로 묶어 통계정보를 수집하되 column의 상호 연관성까지 파악하여 수집한다. Function-Based Statistics: 특정 column에 적용된 함수를 적용한 결과에 대한 통계정보를 수집한다. 이 장에서는 11g 의 향상된 통계수집 방법을 설명하고 optimizer가 이러한 통계정보를 어떻게 활용하는지를 테스트를 통하여 확인해 보도록 한다. …
오라클DB 내에 테이블의 정보. 데이타의 정보를 가지고 있는 것이 통계 정보라고 합니다. 통계 정보 갱신은 DBA들이 많이 하는 작업입니다. 이 정보가 갱신 되었을 때 발생 할 수 있는 장애에 대해서…
Oracle Enhanced Statistics Gathering Cost-Based Optimizer(CBO)는 데이터베이스의 통계 정보에 의존합니다. 따라서, CBO가 정확한 실행 계획(Execution Plan)을 생성하도록 하려면, 사용자는 CBO를 사용하기 전에 SQL 문에서 접근하는 모든 테이블, 인덱스, 클러스터 등의…
Analyze는 Serial Statistics Gathering 기능 , DBMS_STATS은 Parallel Gathering 기능 1. Analyze는 파티션의 통계정보를 각 파티션 테이블과 인덱스에 대해서 수집하고, Global Statistics는 파티션 정보를 가지고 계산하므로, 비정확할 수 있다. 그러므로 파티션…
DBMS_STATS 사용 개요 Oracle8까지는 테이블, 인덱스에 대한 통계정보를 생성하기 위해 『ANALYZE』 명령만을 사용할 수 있었으나 Oracle8i 부터는 『ANALYZE』 명령 외에『DBMS_STATS』Package를 제공한다. ANALYZE명령을 사용할 경우에는 신규로 생성한 통계정보가 성능저하를…
질의 최적화는 관계형 데이터베이스의 성능, 특히나 복잡한 SQL 문장의 수행에 있어서 아주 중요한 요소이며, 오라클 데이터베이스는 비용기반 최적화 기법을 사용합니다. 비용기반 최적화 기법에서는 주어진 질의에 대해 다양한 실행 계획(execution plan)이…
테이블 이력 조회 select owner, table_name, to_char(last_analyzed,’YYYY-MM-DD HH24:MI:SS’) from dba_tables where owner=’SCOTT’ ; 통계정보 갱신 이력 조회 select table_name, stats_update_time from dba_tab_stats_history where owner=’SCOTT’ ; 테이블…
통계정보 개요 통계정보 통계정보는 해당 Table 및 Index, Column 에 대한 통계치로서 Optimizer 가 가장 효율적인 Execution plan 을 수립하기 위해 최소비용을 계산하기 위해 사용하는 정보이다. 또한 Object구조 및 Chain정보도 제공한다. …
% 해당 명령어는 SYSTEM User가 가지고 있는 Table의 통계정보를 생성한지 180일 이전와 통계정보가 생성이 안되어 있는 Table을 출력 하는 쿼리입니다. select OWNER,TABLE_NAME,TO_CHAR(LAST_ANALYZED,’YYYY-MM-DD hh24:mi:ss’) from dba_tableswhere OWNER=’SYS’and (LAST_ANALYZED < sysdate –…
이 자료는 딕셔너리에 생성된 통계정보가 RDBMS가 생성한 것인지, 아니면 DBMS_STATS.SET_XXX_STATS procedure에 의해서 생성된 것인지 구분하는 방법에 대한 자료이며, DBMS_STATS package의 사용 예에 대하여 알아본다. Explanation ———– Oracle 8까지는 테이블, 인덱스에 대한 통계정보를…