講解DBMS_STATS的分析表與備份分析信息

字號:

在使用DBMS_STATS分析表的時候,我們經(jīng)常要保存之前的分析,以防分析后導(dǎo)致系統(tǒng)性能低下然后進行快速恢復(fù)。
    首先創(chuàng)建一個分析表,該表是用來保存之前的分析值:
    SQL> begin
    2 dbms_stats.create_stat_table(ownname => 'TEST',stattab => 'STAT_TABLE');
    3 end;
    4 /
    PL/SQL 過程已成功完成。
    分析表信息
    SQL> BEGIN
    2 --DBMS_STATS.delete_table_stats(ownname => 'TEST',tabname => 'A');
    3 DBMS_STATS.gather_table_stats(ownname => 'TEST',tabname => 'A');
    4 END;
    5 /
    PL/SQL 過程已成功完成。
    導(dǎo)出表分析信息到stat_table中。
    SQL> BEGIN
    2 dbms_stats.export_table_stats(ownname => 'TEST',tabname => 'A',stattab => 'STAT_TABLE');
    3 END;
    4 /
    PL/SQL 過程已成功完成。
    SQL>
    同理也有
    EXPORT_COLUMN_STATS:導(dǎo)出列的分析信息
    EXPORT_INDEX_STATS:導(dǎo)出索引分析信息
    EXPORT_SYSTEM_STATS:導(dǎo)出系統(tǒng)分析信息
    EXPORT_TABLE_STATS:導(dǎo)出表分析信息
    EXPORT_SCHEMA_STATS:導(dǎo)出方案分析信息
    EXPORT_DATABASE_STATS:導(dǎo)出數(shù)據(jù)庫分析信息
    IMPORT_COLUMN_STATS:導(dǎo)入列分析信息
    IMPORT_INDEX_STATS:導(dǎo)入索引分析信息
    IMPORT_SYSTEM_STATS:導(dǎo)入系統(tǒng)分析信息
    IMPORT_TABLE_STATS:導(dǎo)入表分析信息
    IMPORT_SCHEMA_STATS:導(dǎo)入方案分析信息
    IMPORT_DATABASE_STATS:導(dǎo)入數(shù)據(jù)庫分析信息
    GATHER_INDEX_STATS:分析索引信息
    GATHER_TABLE_STATS:分析表信息,當cascade為true時,分析表、列(索引)信息
    GATHER_SCHEMA_STATS:分析方案信息
    GATHER_DATABASE_STATS:分析數(shù)據(jù)庫信息
    GATHER_SYSTEM_STATS:分析系統(tǒng)信息
    SQL> select count(*) from stat_table;
    COUNT(*)
    ----------
    1
    刪除分析信息
    SQL> BEGIN
    2 DBMS_STATS.delete_table_stats(ownname => 'TEST',tabname => 'A');
    3 END;
    4 /
    PL/SQL 過程已成功完成。
    導(dǎo)入分析信息
    SQL> BEGIN
    2 DBMS_STATS.import_table_stats(ownname => 'TEST',tabname => 'A',stattab => 'STAT_TABLE');
    3 END;
    4 /
    PL/SQL 過程已成功完成。
    SQL>