Neil的备忘录

just do it
posts - 66, comments - 8, trackbacks - 0, articles - 0

ORACLE统计信息的导出、导入

Posted on 2009-01-16 16:46 Neil's NoteBook 阅读(288) 评论(0)  编辑  收藏 所属分类: ORACLE
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''用户下

或将指定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'',''fys'');
注意:tcl_cust_base_info和fys都是在’ks38''用户下的表。

原文地址: http://database.e800.com.cn/articles/2007/819/1187467720638726675_1.html

只有注册用户登录后才能发表评论。


网站导航: