已归录
做统计信息收集时,estimate_percent 表示采样百分比,比如 30 表示随机抽取 30% 的块。
看一个表当前的采样率:
SELECT owner,
table_name,
num_rows,
sample_size,
ceil(sample_size / num_rows * 100) estimate_percent
FROM dba_tab_statistics
WHERE owner='SCOTT'
AND table_name='TEST';
下面是采样比例的参考建议:
- 小表(小于1G)百分之百收集
- 1~5G:50%收集
- 5G~10G: 30%
- > 10G:一般要考虑分区,以分区为粒度进行收集。
之所以用大小来区别表的大小,是因为采样也是用块的百分比来的