暂无图片
Oracle 19c里面 sys.dbms_stats.postprocess_stats 这个的作用是?
我来答
分享
暂无图片 匿名用户
Oracle 19c里面 sys.dbms_stats.postprocess_stats 这个的作用是?

在文档上没找到dbms_stats 包下的postprocess_stats

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
姚崇

sys.dbms_stats.postprocess_stats 是 Oracle 数据库中一个用于统计信息管理的 PL/SQL 包中的一个子程序,它的作用是对已经收集的统计信息进行后处理和优化,以提高数据库查询的性能。

当使用 DBMS_STATS.GATHER_*_STATS 这些子程序收集表或索引的统计信息时,Oracle 会将这些统计信息存储在数据字典中。但是,由于 Oracle 数据库中的统计信息是基于采样而得到的,因此可能会存在一些误差。此时,sys.dbms_stats.postprocess_stats 子程序就可以帮助我们对这些已经收集的统计信息进行后处理,以改进它们的准确性和可靠性。

具体来说,sys.dbms_stats.postprocess_stats 可以执行以下操作:

对采样结果进行修正,以消除可能的偏差;
基于历史数据和查询模式,对统计信息进行自适应调整,以提高查询的性能;
通过统计信息聚合和删除冗余的统计信息,减少存储开销;
基于不同的查询优化器参数,为统计信息生成多个版本,以适应不同的查询场景。
需要注意的是,sys.dbms_stats.postprocess_stats 子程序的调用并不是必须的,Oracle 会在后台自动执行一些类似的操作。但是,通过手动调用 sys.dbms_stats.postprocess_stats 子程序,我们可以更细粒度地控制统计信息的后处理和优化过程,从而更好地提高数据库的查询性能。

暂无图片 评论
暂无图片 有用 2
lerry
2023-02-17
这个是不是可以通过alter system set "_optimizer_gather_stats_on_load"=FALSE;禁用掉,19.3的db中有个过程里面频繁调用了sys.dbms_stats.postprocess_stats,过程里面很多IAS操作
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏