ORACLE統計資訊的匯出、匯入

guyuanli發表於2009-08-12

1 建立一個專用表儲存各表的統計資訊:
exec dbms_stats.create_stat_table('ks38','fys');

2 將各表的統計資訊匯入到ks38.fys表中;
exec dbms_stats.export_table_stats('ks38','tcl_cust_base_info',null,'fys');
---可以建立不是登陸使用者下的表;如用system登陸,可以建立表到‘ks38'使用者下

[@more@]或將指定schema的統計資訊匯入到ks38.fys表中
exec dbms_stats.export_schema_stats('ks38','fys');

注:
若將整個資料庫的統計資訊匯出到某個表必須按以下方式做:
1)用SYSDBA角色的使用者登陸(如system)
2) exec dbms_stat.create_stat_table('system','tbl_name'); ----記住:此處建立的表必須是登陸使用者下的表。
3) exec dbms_stat.export_database_stats('tbl_name')

****
匯出表狀態、SCHEMA統計資訊,儲存匯出資訊的表的SCHEMA可以和登陸使用者名稱不一致;另外匯入統計資訊的表和原表儘可能
是同一schema下的
匯出整個資料庫統計資訊,儲存匯出資訊的表的SCHEMA必須和登陸使用者名稱一致,必須是DBA角色。

3 檢視統計資訊是否匯入:
select * from ks38.fys;

4 刪除某張表的統計資訊:
exec dbms_stats.delete_table_stats('ks38','tcl_cust_base_info');

5 檢視統計資訊是否被刪除:
select table_name ,to_char(LAST_ANALYZED,'yyyymmdd hh24:mi:ss')
from ALL_tables where lower(table_name) LIKE 'tcl_cust_%_info%';

6 匯入先前匯出的統計資訊:
exec dbms_stats.import_table_stats('ks38','tcl_cust_base_info',null,'fys');
注意:tcl_cust_base_info和fys都是在’ks38'使用者下的表。

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

相關文章