龙空技术网

详解Oracle 11G新特性:Statistics Preferences(信息收集)

波波说运维 322

前言:

而今同学们对“statisticsoracle”大约比较重视,大家都想要分析一些“statisticsoracle”的相关资讯。那么小编在网上网罗了一些有关“statisticsoracle””的相关文章,希望你们能喜欢,姐妹们快快来了解一下吧!

概述

今天主要分享下Oracle11g的新特性--Statistics Preferences,可以实现对指定对象进行信息收集。可以在table、schema、database、global级别设置statistics preference。

1、查看当前数据库是否设置了statistics preference

在11g中增加了三个选项:

1.publish 取值为true、false。 收集到的统计信息是否存到数据字典中。在10g中是自动存到数据字典中,即自动发布;在11g中可以先现将统计信息置于pending状态(这些统计信息被称为pending statistics),确认对性能有提升后再发布。

2.stale_percent 设置对象统计信息过期的阀值。自数据库统计对象收集后,对象中的行被修改的百分比超过该值就会被认为统计信息是过期的。

3.incremental 是否进行增量收集

SQL> select * from dba_tab_stat_prefs;SQL> desc dba_tab_stat_prefs;
2、信息收集

dbms_stats.set_database_prefs

dbms_stats.set_global_prefs procedure

dbms_stats.set_schema_prefs procedure

dbms_stats.set_table_prefs procedure

其中:

DBMS_STATS.SET_TABLE_PREFS (ownname IN VARCHAR2, #Owner nametabname IN VARCHAR2, #Table namepname IN VARCHAR2, #Preference namepvalue IN VARCHAR2 #Preference value. If NULL is specified, it will set the Oracle default value.);

exec dbms_stats.set_table_prefs('SCOTT','DEPT','PUBLISH','TRUE');select dbms_stats.get_prefs('PUBLISH','SCOTT','DEPT') get_prefs from dual;select * from dba_tab_stat_prefs;exec dbms_stats.set_table_prefs('SCOTT','DEPT','PUBLISH','FALSE');select dbms_stats.get_prefs('PUBLISH','SCOTT','DEPT') get_prefs from dual;select * from dba_tab_stat_prefs;
3、常用脚本:statistics_global_prefs.sql

Displays the top-level global statistics preferences

SET SERVEROUTPUT ONDECLARE PROCEDURE display(p_param IN VARCHAR2) AS l_result VARCHAR2(50); BEGIN l_result := DBMS_STATS.get_prefs (pname => p_param); DBMS_OUTPUT.put_line(RPAD(p_param, 30, ' ') || ' : ' || l_result); END;BEGIN display('AUTOSTATS_TARGET'); display('CASCADE'); display('DEGREE'); display('ESTIMATE_PERCENT'); display('METHOD_OPT'); display('NO_INVALIDATE'); display('GRANULARITY'); display('PUBLISH'); display('INCREMENTAL'); display('STALE_PERCENT');END;/

输出内容:

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

标签: #statisticsoracle