【问题标题】:archive oracle table using shrink space使用收缩空间归档 oracle 表
【发布时间】:2016-02-12 13:50:31
【问题描述】:

出于归档目的,我需要从表中删除数据,但由于删除不会释放空间,因此占用了大量数据。为了保存这一点,我想出了一个使用 oracle 提供的收缩空间命令的解决方案。 但这需要启用行移动。

所以我的问题如下: 1. 使用收缩空间命令启用行移动是否是个好主意。 2. 我们可以只启用运行收缩空间命令的行移动,然后再次禁用它吗 3. 或者我们应该启用行移动并在需要时运行收缩空间命令(比如每周一次)。

【问题讨论】:

    标签: oracle oracle11g archive


    【解决方案1】:

    您是要删除表上的所有数据还是仅删除其中的一部分?如果要删除所有内容,则可以将其截断,以非常快速的方式释放为表和索引分配的所有空间:

    truncate table t;
    

    如果您没有全部删除,则行移动方法应该没问题(3 个选项中的任何一个),但您必须测试对该表的并发访问。是否有其他人会在您维护的同时尝试更新/插入此表?我的猜测是这可能是个问题。

    因此,另一种方法可以根据您的清除标准对表进行分区。例如,如果您要删除超过 3 个月的数据,您可以按月对表进行分区,只删除不再需要的分区。这实际上就是为了方便数据维护而进行分区的目的。

    【讨论】:

    • 不会有并发访问 ..因为这是每周练习,那时不会有插入或更新
    猜你喜欢
    • 2013-03-11
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多