关于自动收集统计信息的问题

在ob v4版本中,关于自动收集统计信息,有几个问题,希望能有人解答一下,谢谢!
1、有没有需要什么设置,例如什么参数需要设置为on,才能开启自动收集统计信息?
2、租户级,当表数据变化35%以上时,主动收集统计信息 是不是只要call DBMS_STATS.SET_GLOBAL_PREFS(‘STALE_PERCENT’, ‘35’);就可以了呢?
3、call DBMS_STATS.SET_TABLE_PREFS(‘ESTIMATE_PERCENT’, ‘20’); 这个是指采用比例为20%吗?

2 个赞

好像不是太灵,MySQL模式下调用统计分析更麻烦

1 个赞

https://open.oceanbase.com/blog/23009112976

3 个赞

内容很详实

2 个赞

非常棒 :+1:

2 个赞

学习一下

2 个赞

学习了

1 个赞

棒棒棒

1 个赞

自动收集统计信息是数据库的一个JOB任务,默认是打开的
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003981912

2 个赞

可以,可以

1 个赞

内容很详细

2 个赞

@论坛小助手 能确认一下吗?感谢!

1 个赞

在 OceanBase 数据库 V4 版本中,自动收集统计信息的几个方面可以这样处理:

  1. 自动收集统计信息默认就是开启的,不需要单独设置某个参数为 ON 来启动。但用户可以自定义一些参数来控制自动收集的行为,比如设置哪些表需要收集统计信息,收集的频率等。
  2. 对于租户级别,当表数据变化超过 35% 时,可以通过调用 DBMS_STATS.SET_GLOBAL_PREFS('STALE_PERCENT', '35') 来设置统计信息的陈旧度阈值。这意味着当表的数据发生 35% 以上的变动时,系统会认为现有的统计信息已经过时,需要重新收集新的统计信息。
  3. DBMS_STATS.SET_TABLE_PREFS('ESTIMATE_PERCENT', '20') 这个设置是指在收集特定表的统计信息时,只采用 20% 的数据样本进行估算。这是为了减少统计信息收集时的性能开销,同时保持统计信息的准确性。

详情请参考:

  1. 自动统计信息收集
  2. 常见的 SQL 调优方式
1 个赞

学到了

1 个赞