WEB开发网
开发学院数据库Oracle ORACLE数据库的统计数据及其生成方式 阅读

ORACLE数据库的统计数据及其生成方式

 2007-05-09 12:12:10 来源:WEB开发网   
核心提示: sqlplus scott/tiger << EOFset pagesize 5000set heading offSPOOL ANALYTAB.SQLSELECT 'ANALYZE TABLE SCOTT.'||TABLE_NAME||' ESTIMA
sqlplus scott/tiger << EOF
set pagesize 5000
set heading off
SPOOL ANALYTAB.SQL
SELECT 'ANALYZE TABLE SCOTT.'||TABLE_NAME||' ESTIMATE
STATISTICS SAMPLE 20 PERCENT ;' FROM USER_TABLES ;
SPOOL OFF
SPOOL ANALYIND.SQL
SELECT 'ANALYZE TABLE SCOTT.'||TABLE_NAME||' ESTIMATE
STATISTICS SAMPLE 20 PERCENT FOR ALL INDEXES;' FROM USER_TABLES ;
SPOOL OFF
SPOOL ANALYZE.LOG
@ANALYTAB.SQL
@ANALYIND.SQL
SPOOL OFF
EXIT

在 UNIX 平台上 crontab 加入,以上文件,设置为每个月或合适的时间段运行。

2. 利用 ORACLE 提供的程序包( PACKAGE )对相关的数据库对象进行分析。

有以下的程序包可以对表,索引,簇表进行分析。

包中的存储过程的相关参数解释如下:

TYPE 可以是: TABLE , INDEX , CLUSTER 中其一。

SCHEMA 为: TABLE , INDEX , CLUSTER 的所有者, NULL 为当前用户。

NAME 为:相关对象的名称。

METHOD 是: ESTIMATE , COMPUTE , DELETE 中其一,当选用 ESTIMATE ,

下面两项, ESTIMATE_ROWS 和 ESTIMATE_PERCENT 不能同时为空值。

ESTIMATE_ROWS 是:估算的抽样行数。

ESTIMATE_PERCENT 是:估算的抽样百分比。

METHOD_OPT 是:有以下选项,

FOR TABLE /* 只统计表 */

[FOR ALL [INDEXED] COLUMNS] [SIZE N] /* 只统计有索引的表列 */

FOR ALL INDEXES /* 只分析统计相关索引 */

PARTNAME 是:指定要分析的分区名称。

1)

DBMS_DDL.ANALYZE_OBJECT(
TYPE VARCHAR2,
SCHEMA VARCHAR2,
NAME VARCHAR2,
METHOD VARCHAR2,
ESTIMATE_ROWS NUMBER DEFAULT NULL,
ESTIMATE_PERCENT NUMBER DEFAULT NULL,
METHOD_OPT VARCHAR2 DEFAULT NULL,
PARTNAME VARCHAR2 DEFAULT NULL ) ;

该存储过程可对特定的表,索引和簇表进行分析。

Tags:ORACLE 数据库 统计数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接