Oracle表空间优化

(一)降低高水位线

1、TRUNCATE TABLE:执行TRUNCATE TABLE命令会直接清空表,并重置高水位线到初始位置(通常是0),因为它不记录任何操作,也不触发触发器或事务日志,因此效率非常高。这是快速降低高水位线最直接的方式,但请注意,此操作不可回滚。

2、DROP and RECREATE TABLE:另一种极端方式是先删除表再重建,同样可以达到重置高水位线的目的,但这涉及到对象定义的重新创建和权限的重新设置。

3、SHRINK SPACE:从Oracle 10g开始,对于某些类型的段(尤其是索引和堆表),可以使用ALTER TABLE… SHRINK SPACE或ALTER INDEX… SHRINK SPACE命令尝试减小段大小并降低高水位线。这种方法较为温和,但仍需注意其可能带来的锁定和性能影响。

(二)drop表后立即释放表所占用的存储空间

1、使用PURGE命令永久删除表:在DROP TABLE命令后添加PURGE关键字可以立即删除表并释放存储空间。 例如:DROP TABLE table_name PURGE;

2、使用ALTER TABLE命令截断表:可以使用ALTER
TABLE命令截断表,即删除表中的所有数据但保留表结构。这样可以释放存储空间并保留表结构。 例如:ALTER TABLE table_name TRUNCATE;

3、使用ALTER TABLE命令重新分配表空间:如果您希望重新分配表所占用的存储空间,可以使用ALTER TABLE命令修改表的存储选项,例如修改表空间或表的存储参数。

(三)delete删除部分表数据后释放表空间

1、利用“alter table 你的表名 enable row movement;”语句开启允许行移动,该语句允许rowid改变;

2、利用“alter table 你的表名 shrink space;”语句回收空间即可。

3、清空整个表,并释放表空间 当然若准备删除整个表数据并且释放表空间,则使用TRUNCATE命令即可:
truncate的作用是清空表或者说是截断表,它只能作用在表上。
truncate table 表名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值