Oracle 12C 扩展统计信息是否自动收集? (文档 ID 2102495.1)

适用于:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
本文档所含信息适用于所有平台

目标

本文旨在解释 Oracle 12C 是否自动收集扩展统计信息?
 

解决方案

是的。

从 Oracle 12c 开始,列组统计信息作为自适应查询优化的一部分被自动创建。关于这方面的补充信息,以及其它自适应查询优化的功能,请参照 12C 白皮书 What to expect from 12c

自适应查询优化的所有功能,可以使用 OPTIMIZER_ADAPTIVE_FEATURES 参数禁用。这个参数可以从系统或会话级别禁用:

SQL> alter system set OPTIMIZER_ADAPTIVE_FEATURES=false;

or

SQL> alter session set OPTIMIZER_ADAPTIVE_FEATURES=false;

但是,现在客户可以打小补丁Patch#21171382,它会在DBMS_STATS包中增加一个AUTO_STAT_EXTENSIONS的选项。 这个补丁只能打在12c版本上,并且已经包含在12.2中。  这个补丁在DBMS_STATS包中增加了一个AUTO_STAT_EXTENSIONS的选项,可以关闭自动收集扩展统计信息的功能。这个参数可以控制是否在自动/手工收集统计信息时创建扩展统计信息,它可以被设置为:


ON: 根据列在谓语中的使用情况,在收集统计信息时自动收集扩展统计信息。

OFF: 扩展统计信息并不会自动被收集。在使用create_extended_stats API时或者在method_opt显式指定收集扩展统计信息时才会被收集。默认值为OFF。

 

标准的优化器统计信息仍然需要手动或通过自动调度收集。参考:

Document 1226841.1 How To: Gather Statistics for the Cost Based Optimizer
请使用浏览器的分享功能分享到微信等