DBCC SHRINKDATABASE
壓縮指定資料庫中資料檔的大小。
語法
DBCC SHRINKDATABASE
( database_name [ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
引數
database_name
是要壓縮的資料庫名稱。資料庫名稱必須與識別項的規則(Rule)一致。若需相關資訊,請參閱使用識別項。
target_percent
是資料庫壓縮後,資料庫檔案中希望得到的剩餘空間百分比。
NOTRUNCATE
讓已釋放的檔案空間保留在資料庫檔案內。若未指定,會釋放檔案空間給作業系統。
TRUNCATEONLY
讓資料檔中任何未使用的空間釋放給作業系統,並將檔案縮到上一次配置的範圍,在未移動任何資料的情形下壓縮檔案的大小。它不會試圖將資料列重新配置到未配置的分頁上。若使用 TRUNCATEONLY,則 target_percent 會被忽略。
DBCC SHRINKFILE
壓縮相關資料庫指定資料檔或記錄檔的大小。
語法
DBCC SHRINKFILE
( { file_name | file_id }
{ [ , target_size ]
| [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ]
}
)
引數
file_name
是被壓縮的檔案之邏輯名稱。檔案名稱必須符合識別項的規則 (Rule)。若需相關資訊,請參閱使用識別項。
file_id
是要壓縮檔案的識別 (ID) 碼。若要獲得檔案 ID,請使用 FILE_ID 函數,或在目前資料庫中搜尋 sysfiles。
target_size
是以 MB 為單位的需要大小,以整數表示。若未指定,DBCC SHRINKFILE 會將大小壓縮為預設的檔案大小。
若指定了 target_size,DBCC SHRINKFILE 會將檔案壓縮為指定大小。釋放的檔案部份已使用分頁會被重新配置到保留檔案部分的可用空間。例如,當資料檔大小為 10 MB,target_size 設定為 8 的 DBCC SHRINKFILE 會讓位於檔案最後 2 MB 的所有已使用分頁被重新配置到前面 8 MB 的可用插槽中。DBCC SHRINKFILE 不會壓縮超出檔案中儲存資料所需的大小。例如,如果一個 10 MB 資料檔中有 7 MB 已使用,target_size 設為 6 的 DBCC SHRINKFILE 陳述式只會將檔案壓縮為 7 MB,而非 6 MB。
EMPTYFILE
將所有資料從指定的檔案移轉到同一個檔案群組的其它檔案內。Microsoft® SQL Server™ 不再允許資料被置於使用 EMPTYFILE 選項的檔案中。這個選項允許檔案使用 ALTER DATABASE 陳述式卸除。
NOTRUNCATE
讓已釋放的檔案空間保留在檔案中。
若 NOTRUNCATE 指定時加上 target_size,可用的空間便不會釋放給作業系統。DBCC SHRINKFILE 唯一的效果,是將已使用的分頁依照上述的 target_size 重新配置到檔案前端。若未指定 NOTRUNCATE,所有可用檔案空間均會還回作業系統。
TRUNCATEONLY
讓檔案中任何未使用的空間釋放到作業系統,並將檔案壓縮至最後一個配置的範圍,在不移動任何資料的情形下縮減檔案大小。它不會嘗試將資料列重新配置到未配置的分頁上。若使用 TRUNCATEONLY,則 target_size 會被忽略
backup log DATABASE_NAME with TRUNCATE_ONLY //清空交易紀錄
張貼留言