DBMS_STATS常用方法(收集oracle信息)

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:DBMS_STATS常用方法(收集oracle信息)

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

–收集数据库信息
EXEC DBMS_STATS.gather_database_stats;
EXEC DBMS_STATS.gather_database_stats(estimate_percent => 15);
–收集schema信息
EXEC DBMS_STATS.gather_schema_stats(‘SCOTT’);
EXEC DBMS_STATS.gather_schema_stats(‘SCOTT’, estimate_percent => 15);
–收集表信息
EXEC DBMS_STATS.gather_table_stats(‘SCOTT’, ‘EMPLOYEES’);
EXEC DBMS_STATS.gather_table_stats(‘SCOTT’, ‘EMPLOYEES’, estimate_percent => 15);
–收集index信息
EXEC DBMS_STATS.gather_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’);
EXEC DBMS_STATS.gather_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’, estimate_percent => 15);
–删除收集信息
EXEC DBMS_STATS.delete_database_stats;
EXEC DBMS_STATS.delete_schema_stats(‘SCOTT’);
EXEC DBMS_STATS.delete_table_stats(‘SCOTT’, ‘EMPLOYEES’);
EXEC DBMS_STATS.delete_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’);
–创建备份收集信息表
begin
dbms_stats.create_stat_table(USER,stattab => ‘STAT_TABLE’);
end;
–备份收集信息
BEGIN
dbms_stats.export_table_stats(USER,tabname => ‘FEI_T’,stattab => ‘STAT_TABLE’);
END;
–删除收集信息
BEGIN
DBMS_STATS.delete_table_stats(USER,tabname => ‘FEI_T’);
END;
–导入收集信息
BEGIN
dbms_stats.IMPORT_TABLE_STATS(USER,’FEI_T’,stattab => ‘STAT_TABLE’);
END;
–说明:
当前用户可以使用user代替用户名
分析表相关对象信息cascade => true

One thought on “DBMS_STATS常用方法(收集oracle信息)

  1. 备份统计信息
    BEGIN
    DBMS_STATS.CREATE_STAT_TABLE (‘hr’, ‘savestats’);
    DBMS_STATS.GATHER_TABLE_STATS (‘hr’, ’employees’, stattab => ‘savestats’);
    END;
    恢复统计信息
    BEGIN
    DBMS_STATS.DELETE_TABLE_STATS (‘hr’, ’employees’);
    DBMS_STATS.IMPORT_TABLE_STATS (‘hr’, ’employees’, stattab => ‘savestats’);
    END;
    Note:savestats表可以删除,可以考虑加上force=true,相关的index也做同样处理

发表评论

邮箱地址不会被公开。 必填项已用*标注

10 − 1 =