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

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

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

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

最安全的方法是什么?

解决方法

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

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

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

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

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...