oracledbms_stats统计信息管理(八)
END;
/
--步骤2:导出表的分析信息到统计表stat_table中。
BEGIN
dbms_stats.export_table_stats(ownname => 'JINRILOG',tabname => 'ORDERLOG',stattab => 'STAT_TABLE');
END;
/
--步骤3:将统计信息导入到你的目标库
--步骤4:从统计信息表中导入统计信息到当前模式
BEGIN
DBMS_STATS.import_table_stats(ownname => 'JINRILOG',tabname => 'ORDERLOG',stattab => 'STAT_TABLE');
END;
/
exec dbms_stats.gather_table_stats('JINRILOG','USEROPERATELOG',cascade => true);
execute dbms_stats.gather_table_stats(ownname => 'JINRILOG',tabname => 'ORDERLOG' ,estimate_percent =>DBMS_STATS.AUTO_SAMPLE_SIZE ,method_opt => 'for all indexed columns' ,cascade => true,degree =>8 );
----------------------------------------------------
5.管理统计信息
----------------------------------------------------
---5.1修改统计信息保留时间
DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (
retention IN NUMBER);
---5.2还原以前版本的统计信息
恢复统计信息功能给了DBA亡羊补牢的机会.如果新版本的统计信息导致不可预知的问题
/*************
DBMS_STATS.RESTORE_SCHEMA_STATS(
ownname VARCHAR2,
as_of_timestamp TIMESTAMP WITH TIME ZONE,
force BOOLEAN DEFAULT FALSE,
no_invalidate BOOLEAN DEFAULT to_no_invalidate_type
(GET_PARAM('NO_INVALIDATE')));
DBMS_STATS.RESTORE_TABLE_STATS (
ownname VARCHAR2,
tabname VARCHAR2,
as_of_timestamp TIMESTAMP WITH TIME ZONE,
restore_cluster_index BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE,
no_invalidate BOOLEAN DEFAULT to_no_invalidate_type
(GET_PARAM('NO_INVALIDATE')));
DBMS_STATS.RESTORE_SCHEMA_STATS(
as_of_timestamp TIMESTAMP WITH TIME ZONE);
******************/
select dbms_stats.get_stats_history_availability from dual;
GET_STATS_HISTORY_AVAILABILITY
---------------------------------------------------------------------------
28-1月 -15 02.10.00.252146000 下午 +08:00
exec DBMS_STATS.RESTORE_SCHEMA_STATS(
ownname=>
'SCOTT',
as_of_timestamp=>'28-1月 -15 02.10.00.252146000 下午 +08:00',
no_invalidate=>false
);
---5.3验证统计信息
PENDING功能就是防患于未然.dba收集了新的统计信息但是在确定
新的统计信息比现在使用的统计信息更好之前不想让数据库自动使用.
而由dba经过性能测试以后再发布到系统里让数据库使用新的统计信息.
/**********************************语法相关
--
DBMS_STATS.SET_TABLE_PREFS (
ownname IN VARCHAR2,
tabname IN VARCHAR2,
pname IN VARCHAR2,
pvalue IN VARCHAR2);
pname值:
CASCADE
DEGREE
ESTIMATE_PERCENT
GRANULARITY
INCREMENTAL
INCREMENTAL_LEVEL
INCREMENTAL_STALENESS
METHOD_OPT
NO_INVALIDATE
PUBLISH
STALE_PERCENT
TABLE_CACHED_BLOCKS
OPTIONS
--
DBMS_STATS.SET_SCHEMA_PREFS (
ownname IN VARCHAR2,
pname IN VARCHAR2,
pvalue IN VARCHAR2);
pname值:
CASCADE
DEGREE
ESTIMATE_PERCENT
GLOBAL_TEMP_TABLE_STATS
GRANULARITY
INCREMENTAL
INCREMENTAL_LEVEL
INCREMENTAL_STALENESS
METHOD_OPT
NO_INVALIDATE
PUBLISH
STALE_PERCENT
TABLE_CACHED_BLOCKS
OPTIONS
BMS_STATS.SET_SCHEMA_PREFS('SH','CASCADE', 'DBMS_STATS.AUTO_CASCADE');
DBMS_STATS.SET_SCHEMA_PREFS('SH' 'ESTIMATE_PERCENT','9');
DBMS_STATS.SET_SCHEMA_PREFS('SH', 'DEGREE','99');
--
DBMS_STATS.PUBLISH_PENDING_STATS (
ownname IN VARCHAR2 DEFAULT USER,
tabname IN VARCHAR2,
no_invalidate BOOLEAN DEFAULT
to_no_invalidate_type(get_param('NO_INVALIDATE')),
force IN BOOLEAN DEFAULT FALSE);
--
DBMS_STATS.DELETE_PENDING_STATS (
ownname IN VARCHAR2 DEFAULT USER,
tabname IN VARCHAR2);
********************************/
----使用演