使用ALTER TABLE REBUILD减小HEAP表空间

简介:

论坛上经常会有很多人抱怨数据库HEAP表碎片很大,无法收缩。在2005之前可以通过创建聚集索引解决或者重建表将数据导入,等到表空间变小后再进行收缩。在2008中有一个新的语法ALTERTABLE REBUILD,使用这条语句可以重新生成表。

 

下面是我自己的一个表,碎片非常大,占用了大概11G的空间:

 

使用ALTER TABLE REBUILD之后的效果(差距巨大吧,已经变成了131M):

 

这样就避免了在2005中创建表然后导入再更新表一些列的操作,非常简便。

 


本文转自 lzf328 51CTO博客,原文链接:http://blog.51cto.com/lzf328/1110655

相关文章
|
4月前
|
关系型数据库 数据库 PostgreSQL
pg下delete数据后。除了使用VACUUM FULL TABLE 才能释放磁盘空间外的方法。
【8月更文挑战第12天】pg下delete数据后。除了使用VACUUM FULL TABLE 才能释放磁盘空间外的方法。
261 1
|
索引
Truncate Table的时候不管是用drop storage 或reuse storage都会将HWM重新设置到第一
A, B 为两个Table . A, B 的数据分别放在 erp_data  表空间下  A, B 的索引分别放在 erp_indx  表空间下   那么我们使用下面的两个语句删除两个表中的数据 Truncate table A  drop    storage  ;...
855 0
|
SQL Oracle 关系型数据库
flashback table肯定会造成rowid跟着修改
flashback table肯定会造成rowid跟着修改,为什么要开启行移动?
|
SQL 关系型数据库
[WorkLog] InnoDB Faster truncate/drop table space
这个系列, 介绍upstream 一些有意思的worklog **问题** 在InnoDB 现有的版本里面, 如果一个table space 被truncated 或者 drop 的时候, 比如有一个连接创建了临时表, 连接断开以后, 对应的临时表都需要进行drop 操作. InnoDB 是需要将该tablespace 对应的所有的page 从LRU/FLUSH li
455 0
|
机器学习/深度学习 SQL 关系型数据库
|
Go 数据库 数据库管理
重建tempdb
没有TempDB数据库并非无法启动,只不过启动的方式与往常不同,简单的说,就是希望Sqlserver引擎在启动的时候不去启动具体的数据库,这样以后就给了DBA足够的资源来恢复数据库的运行,具体实现方法如下:
1286 0
|
SQL Oracle 关系型数据库
Oracle大表清理truncate .. reuse storage
Oracle大表清理truncate .. reuse storage deallocate_unused_clause Purpose Use the deallocate_unused_...
2025 0