已归录

做统计信息收集时,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:一般要考虑分区,以分区为粒度进行收集。

之所以用大小来区别表的大小,是因为采样也是用块的百分比来的

-- By 许望(RHCA、OCM、VCP)
最后修改:2020 年 09 月 24 日 02 : 15 PM
如果觉得我的文章对你有用,请随意赞赏