oracle 收集对象统计信息 配置 dbms_stats包
1.1 配置 dbms_stats包
dbms_stats包提供了两组子程序,用来配置在之前章节中描述的某些参数的默认值。第一组仅应在10.2版本中使用。实际上,第一组子程序在11.1版本中已废弃。因此,从11.1版本开始,应该使用由第二组子程序提供的子程序。
1.1.1 传统方式
在10.2版本中,你可以更改cascade、estimate_percent、degree、method_opt、no_invalidate和granularity参数的全局默认值。这些默认值能进行修改是因为它们不是硬编码写在存储过程中的,而是在运行时从数据字典中抽取出来的。
dbms_stats包的set_param存储过程可以用来设置默认值。要执行这个过程,需要analyze any dictionary 和 analyze any系统权限。dbms_stats包的get_param函数可以用来获取默认值。下面的例子展示了如何使用它们。注意,pname是参数的名称,而pval是参数的值:
execute dbms_output.put_line(dbms_stats.get_param(pname=>'CASCADE'));
execute dbms_stats.set_param(pname=>'CASCADE',pval=>'TRUE');