問題:sql server刪除數據后,磁盤空間反而增大?
原因是:刪除數據,會記錄日志,所以磁盤空間反而增大。
要怎么做,才能釋放空間?以下的databaseA是數據庫的名稱,注意數據庫名稱要用括號括起來
dbcc shrinkdatabase (databaseA)
解釋:
DBCC SHRINKDATABASE
功能:壓縮數據庫
用法:DBCC SHRINKFILE (N'tableAlog' , 10) #收縮日志文件大小(單位是M)
注意:只有產生許多未使用空間的操作(如截斷表或刪除表操作)后,執行收縮操作最有效,產生碎片較少。其他情況請勿執行,因為雖然釋放了空間,但是會產生大量碎片
所以,總結,以后刪除數據庫表的步驟如下(其中tableA是表名,databaseA是數據庫名):
第一步:
執行
delete from tableA 這個語句是刪除數據,執行效率低
drop table tableA 這個語句是刪除表,效率一般
執行完后發現空間大小反而變大
或
truncate table tableA 這個語句是清空表,效率高,推薦
執行完后發現空間大小無變化
第二步:
DBCC SHRINKDATABASE ( databaseA)
這時候去看看文件大小,發現小了很多