2

我无论如何都不是数据库管理员,所以我在这里陈述一些事情可能是错误的。

在 SQL Server 中,当我们在数据库中添加大量数据然后删除它时,数据文件(.mdf 文件)或数据库(或其他任何名称)的大小不会减小到原始大小. 我们需要缩小它。

相同的基本原理在 Oracle 中是否有效?如果是,那么我应该如何缩小 Oracle 11g 数据库?

4

2 回答 2

7

Oracle 文档的完整解释:回收浪费的空间。对于简短版本:

“您可以缩小表、索引组织表、索引、分区、子分区、物化视图或物化视图日志中的空间。您可以使用 ALTER TABLE、ALTER INDEX、ALTER MATERIALIZED VIEW 或 ALTER MATERIALIZED VIEW LOG 语句与SHRINK SPACE 子句。”

因此,在运行 Oracle Segment Advisor 以推荐要收缩的区域后,类似以下内容将收缩名为mytable.

SQL> alter table mytable enable row movement;
Table altered

SQL> alter table mytable shrink space;
Table altered
于 2012-06-07T14:43:41.910 回答
0

我有一个类似的情况,表大小为 28 Gb,当我从中删除数据时,我发现没有发生任何变化。

在我从该表创建另一个表并删除第一个表后,大小缩小了 10 Gb,变为 18 Gb。

CREATE TABLE NEW_TBL AS SELECT * FROM OLD_TBL

于 2021-08-16T15:30:06.213 回答