SELECT count(*) from emp;
select table_name, num_rows, last_analyzed
from user_tables
where table_name='EMP';
begin
dbms_stats.gather_table_stats('SCOTT','EMP');
end;
/
select table_name, num_rows, last_analyzed
from user_tables
where table_name='EMP';
insert into emp
select *
from emp;
commit;
select count(*) from emp; -- 28건이 되었습니다.
select table_name, num_rows, last_analyzed
from user_tables
where table_name='EMP'; -- 14건입니다.
SELECT DBMS_STATS.get_prefs('STALE_PERCENT') AS global_stale_percent
FROM dual;
-- 전체 DB 기본값을 5%로
BEGIN
DBMS_STATS.set_global_prefs('STALE_PERCENT', '5');
END;
/
SELECT DBMS_STATS.get_prefs('STALE_PERCENT') AS global_stale_percent
FROM dual;
--> 5% 변경되면 테이블 통계정보가 밤 10시에 수집됨
exec dbms_stats.set_table_prefs('scott', 'dept', 'stale_percent', 30);
select table_name, preference_name, preference_value
from user_tab_stat_prefs
where table_name='DEPT';
exec dbms_stats.set_table_prefs('scott', 'emp', 'stale_percent', 40);
select table_name, preference_name, preference_value
from user_tab_stat_prefs
where table_name='EMP';