问题:您能解释一下dbms_stats。Set_global_prefs过程做什么?我想看看dbms_stats.set_global_prefs的一个例子。
dbms_stats.set_global_prefs命令更改SQL优化器统计信息自动重新分析的全局默认项。
从Oracle 11g开始,set_global_prefs过程用于覆盖默认的全局默认项,包括自动统计收集作业的一些特定默认项。
exec dbms_stats。set_global_prefs(“AUTOSTATS_TARGET”、“AUTO”);
这里我们将默认估计百分比设置为10%样本大小:
dbms_stats.set_global_prefs(‘ESTIMATE_PERCENT’,‘10’);
这里我们将并行度设置为25,对于36个CPU的服务器(cpu_count=36):
dbms_stats.set_global_prefs(“
DEGREE”,“35”);
调整全局默认项并不是一个好主意,除非我们非常了解其后果,下面的命令将把统计数据重新设置回默认值。
exec dbms_stats.reset_global_pref_defaults;
总之,dbms_stats.set_global_prefs只有在仔细测试了结果SQL工作负载之后才能修改。
现在,从Oracle 11g release 2开始,我们将这个并行并行功能内置到dbms_stats中。Oracle现在有一个全局dbms_stats配置参数concurrent=true,它允许并发优化器收集统计信息。
exec dbms_stats.set_global_prefs(“
concurrent”,“
true”);
如果您总是希望在运行gather_table_stats时分析索引,您可以使用set_database_prefs、set_global_prefs或set_table_prefs,以便在执行gather_table_stats时始终包含索引。
参考链接:
‘http://www.dba-oracle.com/t_dbms_stats_set_global_prefs.htm#:~:text=Answer%3A%20The%20dbms_stats.set_global_prefs%20command%20changes%20the%20global%20preferences,specific%20preferences%20for%20the%20automatic%20stats%20collection%20job.’
'https://docs.oracle.com/database/121/ARPLS/d_stats.htm'
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26342786/viewspace-3014318/ ,如需转载,请注明出处,否则将追究法律责任。