微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

database – 在Oracle中,删除包含大量数据的表是否安全?

我有一个生产Oracle数据库,其中包含在以前工作期间制作的表中备份的大量数据.这些表彼此独立,并且与数据库的其余部分相互独立.

我想删除这些备份,最好一次性删除.我知道在更新版本的Oracle中,在从回收站中清除之前,实际上不会丢弃掉表.我会接受那个.

一次性将它们全部丢弃是否安全?在DROP操作期间是否存在性能损失?在手术期间是否有可能耗尽资源?

最安全的方法是什么?

解决方法

一次放下它们可能是安全的.

通常,无论表的大小如何,删除表都非常快. DROP并没有真正改变任何数据,Oracle只是更改数据字典以将空间标记为可用.我丢弃了大量数百GB或更多数据的表,从未遇到过问题. (您的数据文件可能不再适当,但这是另一个问题.)

除了依赖和锁定之外,我唯一一次看到丢弃(相对)长时间是因为延迟块清除.基本上,如果您更新,删除或插入(不附加)大量数据,Oracle可能会将一些事务数据写入块.这样做的原因是使COMMIT瞬时,但这意味着甚至从表中读取的下一个查询可能必须清理旧的事务条目.

但是你遇到这个问题的机会很小.如果您有非常大的表,可能是使用直接路径插入创建的,或者其他人已经查询过表并清除了块.即使在最糟糕的情况下,如果你的系统足够好来编写数据,它可能足以摆脱它(尽管如果事务太旧或者没有存档,你可能会遇到ORA-01555快照太旧了来自延迟块清除的额外重做的日志空间等).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐