DBMS_STATS分析表與備份分析資訊

tolywang發表於2008-01-11

在使用DBMS_STATS分析表的時候,我們經常要儲存之前的分析,以防分析後導致系統效能低下,然後進行快速恢復。

首先建立一個分析表,該表是用來儲存之前的分析值。
[@more@]


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 過程已成功完成。

匯出表分析資訊到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:匯出列的分析資訊
EXPORT_INDEX_STATS: 匯出索引分析資訊
EXPORT_SYSTEM_STATS: 匯出系統分析資訊
EXPORT_TABLE_STATS: 匯出表分析資訊
EXPORT_SCHEMA_STATS: 匯出方案分析資訊
EXPORT_DATABASE_STATS:匯出資料庫分析資訊
IMPORT_COLUMN_STATS:匯入列分析資訊
IMPORT_INDEX_STATS:匯入索引分析資訊
IMPORT_SYSTEM_STATS:匯入系統分析資訊
IMPORT_TABLE_STATS:匯入表分析資訊
IMPORT_SCHEMA_STATS:匯入方案分析資訊
IMPORT_DATABASE_STATS:匯入資料庫分析資訊
GATHER_INDEX_STATS:分析索引資訊
GATHER_TABLE_STATS:分析表資訊,當cascade為true時,分析表、列(索引)資訊
GATHER_SCHEMA_STATS:分析方案資訊
GATHER_DATABASE_STATS:分析資料庫資訊
GATHER_SYSTEM_STATS:分析系統資訊
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 過程已成功完成。
匯入分析資訊
SQL> BEGIN
2 DBMS_STATS.import_table_stats(ownname => 'TEST',tabname => 'A',stattab => 'STAT_TABLE');
3 END;
4 /
PL/SQL 過程已成功完成。
SQL>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-997117/,如需轉載,請註明出處,否則將追究法律責任。

相關文章