oracle数据库表空间占用太大,如何在不删除表的情况下缩小占用空间

oracle数据库表空间占用太大,如何在不删除表的情况下缩小占用空间,第1张

alter table 表名 move和alter table 表名 shrink space都可以用来进行段收缩,降低高水位HWM,

也都可以用来消除行链接(Row Chaining)和行迁移(Row Migration),估计效果不明显,看你的数据库用途是干什么的(如果是数据仓库肯定是不明显的)。

删除数据不能缩小表空间,只是可再利用的多了.

要实际缩小,让 *** 作系统可以利用,需要先把表move tablespace

也可以在原来的tablespace上move一遍,再缩小tablespace就可以了.

例如:

alter table your_table move tablespace yourtablespace

1.不行,数据文件不能单独删除,要与表空间一起删除。也可以手工合并自由范围: alter tablespace temp coalesce否则就重建表空间: 1.startup --启动数据库 2.create temporary tablespace TEMP2 TEMPFILE '/home2/oracle/oradata/sysmon/temp02.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED--创建中转临时表空间 3.alter database default temporary tablespace temp2--改变缺省临时表空间 为刚刚创建的新临时表空间temp2 4.drop tablespace temp including contents and datafiles--删除原来临时表空间 5.create temporary tablespace TEMP TEMPFILE '/home2/oracle/oradata/sysmon/temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED--重新创建临时表空间 6.alter database default temporary tablespace temp--重置缺省临时表空间为新建的temp表空间 7.drop tablespace temp2 including contents and datafiles--删除中转用临时表空间 8.alter user roll temporary tablespace temp--重新指定用户表空间为重建的临时表空间


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6735978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存