在8i和9i自动收集模式或数据库统计-举例
适用于:
Oracle服务器-企业版-版本:8.1.5.0到9.2.0.8-版本:8.1.5到9.2
目的:
[31-12-2008]相关检查。
本文给出了不同的例子,可以用来收集在Oracle 8i和Oracle 9i里的架构和数据库系统。
这是一个简单的方法来收集和维护的最新统计数据,没有每次收集统计上的所有对象。
注意在Oracle 10g中涉及的子程序已被弃用,现在是非经营性的,因为Oracle会自动执行其职能。见:
PL/SQL包和类型参考
10g第1版(10.1)
零件编号B10802-01
第93使用DBMS_STATS
标题过时的子程序
范围和应用:
DBA和工程师
在8i和9i自动收集模式或数据库统计-举例
本文提供了如何架构或数据库统计信息自动收集的版本为9.2的例子。在Oracle 8i及以上统计可以自动收集已成为过时的,因为他们已经超出某个阈值而改变其统计对象。
对于在此看到更多的细节:
注:102334.1如何自动更改基于统计信息收集
注:228186.1使用gather stale还是gather auto之间的差异
收集统计对象的统计数据是陈旧的,与收集所有对象的统计相比,可以节省大量的资源,尤其是如果对象没有显著改变自以前的统计数据收集。
在下面的例子中,表有监控启用如下:
-in Oracle 8i:
SQL>alter table monitoring;
-In Oracle 9i:
SQL>exec dbms_stats.ALTER_SCHEMA_TAB_MONITORING(“,TRUE);
SQL>exec dbms_stats.ALTER_DATABASE_TAB_MONITORING(TRUE);
在Oracle 8i和Oracle 9i中的例子,我们的目标是相同的-自动收集统计数据有丢失或过时的统计数据的对象。
Oracle 9i的例子:
在Oracle 9i中,只有1条语句需要收集的对象,这是新的或失效(表和索引)统计。
Oracle 9i的-收集在一个模式中的对象统计:
exec dbms_stats.gather_schema_stats(-
ownname=>NULL,-
options=>’GATHER AUTO’-
);
Oracle 9i的-收集统计数据库中的对象:
exec dbms_stats.gather_schema_stats(-
options=>’GATHER AUTO’-
);
对于在使用DBMS_STATS包的更多细节,请参考:
Oracle 9i中提供的PL/SQL包和类型参考第2版(9.2)
零件编号A96612-01.
Oracle 8i中的例子:
在Oracle 9i上面的例子使用Oracle 8i中的“收集AUTO”选项不存在,因此,为了有类似的行为,必须使用2报表。
使用这两个语句一起收集统计上的所有对象,要么没有统计或陈旧的对象。只有符合这些标准的对象,为他们收集的统计数据。
Oracle 8i中-收集在一个模式中的对象统计:
SQL>exec dbms_stats.gather_schema_stats(-
ownname=>’ABC’,-
estimate_percent=>100,-
granularity=>’ALL’,-
method_opt=>’FOR ALL COLUMNS SIZE 50’,-(*)
degree=>NULL,-
options=>’GATHER EMPTY’,-(**)
cascade=>TRUE-
);
SQL>exec dbms_stats.gather_schema_stats(-
ownname=>’ABC’,-
estimate_percent=>100,-
granularity=>’ALL’,-
method_opt=>’FOR ALL COLUMNS SIZE 50’,-(*)
degree=>NULL,-
options=>’GATHER STALE’,-(**)
cascade=>TRUE-
);
Oracle 8i中-收集统计数据库中的对象:
SQL>exec dbms_stats.gather_schema_stats(-
estimate_percent=>100,-
method_opt=>’FOR ALL COLUMNS SIZE 50’,-(*)
degree=>NULL,-
granularity=>’ALL’,-
options=>’GATHER EMPTY’,-(**)
cascade=>TRUE-
);
SQL>exec dbms_stats.gather_schema_stats(-
estimate_percent=>100,-
method_opt=>’FOR ALL COLUMNS SIZE 50’,-(*)
degree=>NULL,-
granularity=>’ALL’,-
options=>’GATHER STALE’,-(**)
cascade=>TRUE-
);
(*)method_opt参数定义了列的统计信息收集
“所有列的大小50”的价值集列的统计信息。
50桶直方图聚集。见:
注:10.1826.6直方图:概述
另外,“尺寸1”为所有列的值集基本列上的所有列,没有直方图(1桶柱状图)统计(高和低价值)聚集。
(**)的选项参数指定自动化水平的选择
统计信息收集。详情如下:
“GATHER”集所有对象的统计信息。
“GATHER EMPTY”集目前没有统计对象的统计信息。
“GATHER STALE”集寻找*_tab_modifications视图确定的陈旧对象的统计信息。