ORACLE19c新特性-实时统计信息收集

某年某月的某一天,客户问题,柱状图信息怎么会有两份的呀?

然后表统计信息收集完后就正常了

嘿奇了怪了!

因为这个原因导致客户生产数据库跑批处理出问题了

 

咨询客户后数据库版本是 19.9

那我肯定回去模拟。。。发现怎么模拟不出来。

过了一会儿,又补了一句,是exadata

恍然大悟,是不是exadata的事实统计信息的问题。

 

那想着如何关闭实时统计信息收集这个问题

于是我们同事网上找了一个方法

exec dbms_stats.set_global_prefs('autostats_target','oracle'); 

exec dbms_stats.set_global_prefs('autostats_target','AUTO'); 

 

具体语句意思:

auto 是默认设置。 oracle会自己决定哪些对象被收集统计信息。 

 

如果设置为oracle,那么就会限制oracle自己对象的统计收集,比如只收集SYS, SYSMAN, WMSYS 和 EXFSYS 用户下的对象统计收集。 

 

更多详细信息,请参考 AUTOSTATS_TARGET : Setting and Effects (  Doc ID 276358.1  ) 

 

真正关闭实时统计信息的方法

是的,具体情况请参考如下。 

 

1. Enable realtime stats gathering: 

 

e.g. 

 

alter system set "_optimizer_gather_stats_on_conventional_dml" = true; 

alter system set "_optimizer_use_stats_on_conventional_dml" = true; 

   

2. Disable realtime stats gathering : 

 

e.g. 

 

alter system set "_optimizer_gather_stats_on_conventional_dml" = false; 

alter system set "_optimizer_use_stats_on_conventional_dml" = false; 


请使用浏览器的分享功能分享到微信等