支持用户级别导入和导出统计信息
1、创建统计信息存放表xxx_gather
CALL DBMS_STATS.CREATE_STAT_TABLE(‘GNBS’,‘GNBS_GATHER’);
Tip: 这里GNBS举例说明,需更换为实际用户名;执行该指令后会生成STAT$_GNBS_GATHER 表 该表切记不能删除!!!
2、导出已有统计信息
执行:
BEGIN
FOR RS IN (SELECT OWNER,TABLE_NAME FROM ALL_TABLES WHERE OWNER=‘GNBS’)
LOOP
CALL DBMS_STATS.EXPORT_TABLE_STATS(RS.OWNER,RS.TABLE_NAME,null,‘GNBS_GATHER’,1,TRUE);
END LOOP;
END;
该步骤为将现有统计信息内容导出到STAT$_GNBS_GATHER 表中,该表不需要删除做为存底。
3、备份STAT$_XXX_GATHER表
备份方法可选择dmfldr 卸数或dexp 逻辑导出。使用dmfldr 注意保存表结构信息。
4、导入STAT$_XXX_GATHER表
BEGIN
FOR RS IN (SELECT OWNER,TABLE_NAME FROM ALL_TABLES WHERE OWNER=‘GNBS’)
LOOP
CALL DBMS_STATS.IMPORT_TABLE_STATS(RS.OWNER,RS.TABLE_NAME,null,‘GNBS_GATHER’,1,TRUE);
END LOOP;
END;
该步骤为将STAT$_GNBS_GATHER表里的内容导入到系统统计信息表SYSSTATS中。
支持用户级别导入和导出统计信息
1、创建统计信息存放表xxx_gather
CALL DBMS_STATS.CREATE_STAT_TABLE(‘GNBS’,‘GNBS_GATHER’);
Tip: 这里GNBS举例说明,需更换为实际用户名;执行该指令后会生成STAT$_GNBS_GATHER 表 该表切记不能删除!!!
2、导出已有统计信息
执行:
BEGIN
FOR RS IN (SELECT OWNER,TABLE_NAME FROM ALL_TABLES WHERE OWNER=‘GNBS’)
LOOP
CALL DBMS_STATS.EXPORT_TABLE_STATS(RS.OWNER,RS.TABLE_NAME,null,‘GNBS_GATHER’,1,TRUE);
END LOOP;
END;
该步骤为将现有统计信息内容导出到STAT$_GNBS_GATHER 表中,该表不需要删除做为存底。
3、备份STAT$_XXX_GATHER表
备份方法可选择dmfldr 卸数或dexp 逻辑导出。使用dmfldr 注意保存表结构信息。
4、导入STAT$_XXX_GATHER表
BEGIN
FOR RS IN (SELECT OWNER,TABLE_NAME FROM ALL_TABLES WHERE OWNER=‘GNBS’)
LOOP
CALL DBMS_STATS.IMPORT_TABLE_STATS(RS.OWNER,RS.TABLE_NAME,null,‘GNBS_GATHER’,1,TRUE);
END LOOP;
END;
该步骤为将STAT$_GNBS_GATHER表里的内容导入到系统统计信息表SYSSTATS中。