作者TeemingVoid (TeemingVoid)
看板Database
标题Re: [SQL ] 整理资料表空间
时间Tue Aug 28 15:23:00 2012
※ 引述《carlsiu (Carl Siu)》之铭言:
: 在 MySQL 的资料表中,删除一些纪录後,资料表所占的空间不会变小,但只要下一道
: optimize tablename 便可去除多余的空间。
: 请问在 MS SQL 中,也有相对应的指令吗?谢谢。
首先,optimize table 的作用主要不在於缩减空间,而是在於储存空间整理、
索引重整、索引统计更新等等的最佳化处理。
其次,MySQL 也不是全部的 Storage Engine 都会在 optimize table 之後释出
储存空间。
最後,释出空间给作业系统,不一定是好事。因为,资料如果曾经那麽多,档案
後来还是可能会那麽大,於是,後来一次一次追加空间的结果,资料档反而在磁
轨上形成多个段落,使得磁碟读写不如一整段来得顺畅。总之,空间利用的最适
化是 optimize table 的重点,释出空间是後续连带的可能结果。
至於 SQL Server 的相对指令,如果单指空间重整并释出空间,可用:
* DBCC SHRINKDATABASE
* DBCC SHRINKFILE
索引的重整,请用 ALTER INDEX ... REBUILD 指令,并且排定时间定期维护。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.107.99
1F:推 carlsiu:谢谢你的详细解说。因express版有10G的限制,才这样会关 08/29 13:47
2F:→ carlsiu:心使用空间的问题。 08/29 13:48
3F:→ TeemingVoid:不客气 ^^ 有道理,Express 版的确要留意 10G 限制。 08/29 16:05