Oracle收集统计信息的采样比例:
SELECT owner, segment_name, ROUND (SUM (bytes) / 1024 / 1024) size_mb,
case when sum(bytes)/1024/1024 < 1 then '100'
when sum(bytes)/1024/1024 >= 1 and sum(bytes)/1024/1024 < 1000 then '20'
when sum(bytes)/1024/1024 >= 1000 and sum(bytes)/1024/1024 < 100000 then '5'
when sum(bytes)/1024/1024 >= 100000 then '1' end estimate_percent
FROM dba_segments
WHERE segment_type like 'TABLE%' GROUP BY owner, segment_name
exec dbms_stats.gather_database_stats(estimate_percent=>100,degree=>4,cascade=>true,granularity=>'ALL');
exec dbms_stats.gather_table_stats(username,'tablename',estimate_percent=>100,degree=>4,cascade=>true,granularity=>'ALL');
user:
SELECT owner, segment_name, ROUND (SUM (bytes) / 1024 / 1024) size_mb,
case when sum(bytes)/1024/1024 < 1 then '100'
when sum(bytes)/1024/1024 >= 1 and sum(bytes)/1024/1024 < 1000 then '20'
when sum(bytes)/1024/1024 >= 1000 and sum(bytes)/1024/1024 < 100000 then '5'
when sum(bytes)/1024/1024 >= 100000 then '1' end estimate_percent
FROM dba_segments
WHERE segment_type like 'TABLE%' GROUP BY owner, segment_name
exec dbms_stats.gather_database_stats(estimate_percent=>100,degree=>4,cascade=>true,granularity=>'ALL');
exec dbms_stats.gather_table_stats(username,'tablename',estimate_percent=>100,degree=>4,cascade=>true,granularity=>'ALL');
user: