加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2021-02-08 10:05:42 所属栏目:百科 来源:网络整理
导读:我有一个生产Oracle数据库,其中包含在以前工作期间制作的表中备份的大量数据.这些表彼此独立,并且与数据库的其余部分相互独立. 我想删除这些备份,最好一次性删除.我知道在更新版本的Oracle中,在从回收站中清除之前,实际上不会丢弃掉表.我会接受那个. 一次

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

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

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

最安全的方法是什么?

解决方法

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

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

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

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

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读