转载自雅飞士个人博客 本文链接地址: http://blog.yafeishi.net/2012/12/stat-export-import.html

【oracle】统计信息的导入导出

统计信息导入导出试验.

涉及的具体语法可参考oracle官方文档。

1. 数据库版本:

SQL> select * from v$version

  2  /

BANNER

—————————————————————-

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bi

PL/SQL Release 10.2.0.4.0 – Production

CORE  10.2.0.4.0  Production

TNS for Solaris: Version 10.2.0.4.0 – Production

NLSRTL Version 10.2.0.4.0 – Production

2.创建测试表

SQL> create table test_stat as select * from dba_objects;

Table created

3.查看测试是否有统计信息:

SQL> select A.TABLE_NAME,A.NUM_ROWS,A.BLOCKS,A.LAST_ANALYZED from dba_tables a where a.table_name=’TEST_STAT’;

TABLE_NAME                       NUM_ROWS     BLOCKS LAST_ANALYZED

—————————— ———- ———- ————-

TEST_STAT                                           

4.上步结果没有,故收集下统计信息: 

SQL> execute dbms_stats.gather_table_stats(ownname => ‘DANGHB’,tabname => ‘TEST_STAT’,estimate_percent => 20,degree => 5,no_invalidate => false);

PL/SQL procedure successfully completed

5.再次查看统计信息:

SQL> select A.TABLE_NAME,A.NUM_ROWS,A.BLOCKS,A.LAST_ANALYZED from dba_tables a where a.table_name=’TEST_STAT’;

TABLE_NAME                       NUM_ROWS     BLOCKS LAST_ANALYZED

—————————— ———- ———- ————-

TEST_STAT                           67780       1044 2012/12/6 11:

6.创建存放统计信息的表:

SQL> execute dbms_stats.create_stat_table(ownname => ‘DANGHB’,stattab => ‘STAT_TABLE’);

PL/SQL procedure successfully completed

7.导出统计信息:

SQL> execute dbms_stats.export_table_stats(ownname => ‘DANGHB’,tabname => ‘TEST_STAT’,stattab => ‘STAT_TABLE’);

PL/SQL procedure successfully completed

8.查看存放统计信息的表是否有内容: 

SQL> select count(*) from stat_table;

  COUNT(*)

———-

        14

9.删除测试表的统计信息:

SQL> execute dbms_stats.delete_table_stats(ownname => ‘DANGHB’,tabname => ‘TEST_STAT’);

PL/SQL procedure successfully completed

10.确实是否删除:

SQL> select A.TABLE_NAME,A.NUM_ROWS,A.BLOCKS,A.LAST_ANALYZED from dba_tables a where a.table_name=’TEST_STAT’;

TABLE_NAME                       NUM_ROWS     BLOCKS LAST_ANALYZED

—————————— ———- ———- ————-

TEST_STAT                                           

11.导入统计信息:

SQL> execute dbms_stats.import_table_stats(ownname => ‘DANGHB’,tabname => ‘TEST_STAT’,stattab => ‘STAT_TABLE’);

PL/SQL procedure successfully completed

12.查看是否导入成功:

SQL> select A.TABLE_NAME,A.NUM_ROWS,A.BLOCKS,A.LAST_ANALYZED from dba_tables a where a.table_name=’TEST_STAT’;

TABLE_NAME                       NUM_ROWS     BLOCKS LAST_ANALYZED

—————————— ———- ———- ————-

TEST_STAT                           67780       1044 2012/12/6 11:

–EOF

posted @ 2012-12-09 21:09  皮皮机器猫  阅读(196)  评论(0编辑  收藏  举报