기술 정보
home
채널 소개
home

통계 수집 프로시저 (Table/Partition table)

문서 유형
기술 정보
분야
튜닝
키워드
statistic
partition table
table
1 more property

개요

통계 수집 프로시저는 DBMS에서 통계 정보 수집 및 업데이트를 위한 절차 입니다.
통계 정보는 쿼리 실행 계획 최적화에 활용할 수 있고, 이 때 프로시저를 이용할 경우 자동화 방식으로 정보를 더욱 효율적으로 수집할 수 있습니다.

방법

Table

CREATE OR REPLACE PROCEDURE SYS.STATS_NOR_TABLE ( owner_in IN VARCHAR ) IS CURSOR stats_loop IS select 'call dbms_stats.gather_table_stats('''||owner||''', '''||table_name||''''|| ', estimate_percent=>5,'||' method_opt=>'''||'FOR ALL INDEXED COLUMNS SIZE 124'''|| ', degree=>8);' as stats_list from dba_tables where owner = owner_in and partitioned = 'NO'; BEGIN FOR stats_msg in stats_loop LOOP DBMS_OUTPUT.PUT_LINE('stats msg : ' || stats_msg.stats_list); execute immediate stats_msg.stats_list; END LOOP; END STATS_NOR_TABLE;
SQL
복사

Partition table

CREATE OR REPLACE PROCEDURE SYS.STATS_PART_TABLE ( owner_in IN VARCHAR ) IS CURSOR stats_loop IS select 'call dbms_stats.gather_table_stats('''||owner||''', '''||table_name||''''||', partname=>'||''''||partition_name||''''|| ', estimate_percent=>5,'||' method_opt=>'''||'FOR ALL INDEXED COLUMNS SIZE 124'''||', degree=>8'||', granularity=>''PARTITION'''||');' as stats_list from dba_tab_partitions where owner = owner_in; BEGIN FOR stats_msg in stats_loop LOOP DBMS_OUTPUT.PUT_LINE('stats msg : ' || stats_msg.stats_list); execute immediate stats_msg.stats_list; END LOOP; END STATS_PART_TABLE;
SQL
복사