服务器 频道

Oracle数据库中行迁移/行链接的问题之二

  方法四:使用EXP/IMP工具清除行迁移的方法
  
  1. 使用EXP导出存在有行迁移的表。
  
  2. 然后TRUNCATE原来的表。
  
  3. IMP开始导出的表。
  
  4. 重建表上所有的索引。(可选)
  
  使用这种方法可以不用重建索引,省去了这部分时间,但是完成之后索引的使用效率不会很高,最好是在以后逐步的在线重建索引,这样是可以不需要中断业务的。但是需要考虑的是IMP的时候会比较慢,而且会占用比较大的IO,应该选择在应用不是很繁忙的时候做这项工作,否则会对应用的正常运行产生较大的影响。对于这种方法还存在有一个比较大的弊端,就是在EXP表的时候要保证该表是没有数据的更新或者是只读状态的,不能对表有插入或者更新操作,否则会导致数据的丢失。
  
  SQL> select count(*) from test;
  
  COUNT(*)
  
  ----------
  
  169344
  
  SQL> truncate table chained_rows;
  
  Table truncated.
  
  SQL> analyze table test LIST CHAINED ROWS INTO chained_rows;
  
  Table analyzed.
  
  SQL> select count(*) from chained_rows;
  
  COUNT(*)
  
  ----------
  
  3294
  
  $ exp allan/allan file=test.dmp tables=test
  
  Export: Release 9.2.0.3.0 - Production on Sun Jun 6 13:50:08 2004
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
  Connected to: Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
  
  With the Partitioning, OLAP and Oracle Data Mining options
  
  JServer Release 9.2.0.3.0 - Production
  
  Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
  
  About to export specified tables via Conventional Path ...
  
  . . exporting table TEST 169344 rows exported
  
  Export terminated successfully without warnings.
  
  $ sqlplus allan/allan
  
  SQL*Plus: Release 9.2.0.3.0 - Production on Sun Jun 6 13:50:43 2004
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved
  
  Connected to:
  
  Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
  
  With the Partitioning, OLAP and Oracle Data Mining options
  
  JServer Release 9.2.0.3.0 - Production
  
  SQL> truncate table test;
  
  Table truncated.
  
  SQL> exit
  
  Disconnected from Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
  
  With the Partitioning, OLAP and Oracle Data Mining options
  
  JServer Release 9.2.0.3.0 - Production
  
  $ imp allan/allan file=test.dmp full=y ignore=y buffer=5000000
  
  Import: Release 9.2.0.3.0 - Production on Sun Jun 6 13:51:24 2004
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
  Connected to: Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
  
  With the Partitioning, OLAP and Oracle Data Mining options
  
  JServer Release 9.2.0.3.0 - Production
  
  Export file created by EXPORT:V09.02.00 via conventional path
  
  import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
  
  . importing ALLAN''s objects into ALLAN
  
  . . importing table "TEST" 169344 rows imported
  
  Import terminated successfully without warnings.
  
  $ sqlplus allan/allan
  
  SQL*Plus: Release 9.2.0.3.0 - Production on Sun Jun 6 13:52:53 2004
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
  Connected to:
  
  Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
  
  With the Partitioning, OLAP and Oracle Data Mining options
  
  JServer Release 9.2.0.3.0 - Production
  
  SQL> select count(*) from test;
  
  COUNT(*)
  
  ----------
  
  169344
  
  SQL> select index_name from user_indexes where table_name=''TEST'';
  
  INDEX_NAME
  
  ------------------------------
  
  OBJ_INDEX
  
  SQL> alter index OBJ_INDEX rebuild online;
  
  Index altered.
  
  SQL> truncate table chained_rows;
  
  Table truncated.
  
  SQL> analyze table test LIST CHAINED ROWS INTO chained_rows;
  
  Table analyzed.
  
  SQL> select count(*) from chained_rows;
  
  COUNT(*)
  
  ----------
  
  0
  
0
相关文章