DBCC收缩数据库
原文 http://www.cnblogs.com/sunshineflower/archive/2013/04/17/3026233.html
? DBCC是SQL Server的數據庫控制臺命令。它可以提供多種命令,用于實現數據庫維護、驗證、獲取信息等功能。
用法一:使用DBCC SHRINKDATABASE語句收縮數據庫
???? 使用DBCC SHRINKDATABASE語句可以收縮指定數據庫中的數據文件和日志文件的大小,其基本語法結構如下:
基本語法:
DBCC SHRINKDATABASE(數據庫名|數據庫ID|0,目標百分比,NOTRUNCATE|TRUNCATEONLY)
在DBCC SHRINKDATABASE后面需要指定要收縮的數據庫名稱或數據庫ID。如果使用0,則收縮當前數據庫。
參數“目標百分比”,可選,只對收縮數據文件有效。使用此參數后,文件末尾已分配的頁移動到文件前面未分
配的頁。文件末尾的可用空間不會返回給操作系統,文件的物理大小也不會改變。
參數“TRUNCATEONLY”,可選,也只對收縮數據文件有效。使用此參數后,文件末尾的所有可用空間都會釋放給
操作系統,但不在文件內部執行頁移動操作。因此,使用此參數數據文件只能收縮最近分配的區。
例如,收縮數據庫db_test,剩余可用空間為10%,代碼如下:
DBCC SHRINKDATABASE(db_test,10)?
需要注意的是,數據庫空間并不是越小越好。因為大多數數據庫都需要預留一部分空間,以供日常操作使用。因
此,在收縮數據庫時,如果數據庫文件的大小不變或者反而變大了,則說明收縮空間是常規操作所需要的,這是
,就不需要收縮數據庫了。
用法二:使用DBCC SHRINKDATABASE語句收縮指定的數據庫文件
基本語法:
DBCC SHRINKFILE(文件名|文件ID|0,EMPTYFILE,收縮后文件的大小,NOTRUNCATE|TRUNCATEONLY)
參數文件名,必填,指要收縮的數據庫文件的邏輯名稱。
參數EMPTYFILE,可選,數據庫引擎將當前文件的所有數據都遷移到同一文件組中的其他文件,然后可以使用
ALTER DATABASE語句來刪除該文件。
參數"收縮后文件的大小"用整數表示,單位為MB。如果未指定此參數,則文件減少到默認的文件大小。
參數“TRUNCATEONLY”,可選,也只對收縮數據文件有效。使用此參數后,文件末尾的所有可用空間都會釋放給
操作系統,但不在文件內部執行頁移動操作。因此,使用此參數數據文件只能收縮最近分配的區。
例如:將數據庫db_test中的db_test1文件收縮的20MB,代碼如下:
DBCC SHRINKFILE(db_test1,20);?
例如:使用EMPTYFILE關鍵字清空數據庫文件。
將數據庫db_test中的db_test1文件清空,然后使用ALTER DATABASE語句來刪除該文件,代碼如下:
?
例如:有時候日志文件會變得很大,可以使用DBCC SHRINKFILE來收縮日志文件,代碼如下:
DBCC SHRINKFILE (db_test_Log, 1); posted on 2013-04-25 10:22 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/lonelyxmas/archive/2013/04/25/3041869.html
總結
- 上一篇: HDOJ 3714
- 下一篇: MAVEN_OPTS=-Xms128m