我需要压缩表格。我使用alter table tablename compress
压缩表。在这样做之后,表格大小保持不变。
我应该如何压缩桌子?
答案 0 :(得分:6)
要压缩表的旧块,请使用:
alter table table_name move compress;
这会将记录重新插入另一个块中,压缩并丢弃旧块,这样您就可以获得空间。并使indexex无效,因此您需要重建它们。
答案 1 :(得分:-1)
压缩不会影响已存储的行。请检查official documentation:
“您使用COMPRESS子句指定表压缩 CREATE TABLE语句。您可以为现有压缩启用压缩 表在ALTER TABLE语句中使用此子句。在这种情况下, 压缩的唯一数据是之后插入或更新的数据 压缩已启用......“
ALTER TABLE t MOVE COMPRESS是一个有效的答案。但是如果使用不同的非默认选项,尤其是大数据量,请在使用ALTER TABLE ... MOVE之前进行回归测试。
历史上有更多的问题(性能下降和错误)。如果您有权访问,请查看Oracle错误数据库,以查看您使用的功能和版本是否存在已知问题。)
如果您: