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 ) ;
该存储过程可对特定的表,索引和簇表进行分析。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接