关于Oracle数据库中行迁移/行链接的问题[50]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 coolyl 的 blog

5.  删除在table_name_temp上的索引和关联其他表的外键。

6.  table_name上建立和原来一样的索引、主键和所有的外键限制。

7.  重新编译相关的存储过程、函数和包。

8.  删除表table_name_temp

对于使用这种方法来清除行迁移,全部的代码都是可以由toad工具来生成的。由于此方法把表上的关联考虑进去了,也是一种比较的全面的考虑的一种清除方法,而且在清除过程中重建了表和索引,对于数据库的存储和性能上都有提高。因为这种方法一开始是rename表为临时表,然后重建一个新表出来的,因此需要两倍的表的空间,因此在操作之前一定要检查要清除的表所在的表空间的free空间是否足够;但是也有一定的缺陷,因为在新表中重新插入原来的数据后需要重建索引和限制,因此在时间和磁盘的空间上都有比较大的开销,而且对于前台的应用可能会有一段时间的中断,当然,这个中断时间就主要是消耗在重建索引和重建限制上了,而时间的长短跟需要重建索引和限制的多少以及表的记录多少等等因素都有关系。使用这种方法对于7*24小时要求的系统上清除行迁移不是很合适,因为使用这种方法会导致系统可能有一段时间的停机,如果系统的实时性比较高,这种方法就不是很适用了。

 

  方法四:使用exp/imp工具清除行迁移的方法

1.    使用exp导出存在有行迁移的表。

2.    然后truncate原来的表。

3.    imp开始导出的表。

本文关键:关于Oracle数据库中行迁移/行链接的问题
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top