本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2014 中壓縮數據或記錄檔。
將資料頁面從檔案結尾移到靠近檔案前端的未使用空間,以壓縮資料並復原儲存空間。 在檔案結尾建立足夠的可用空間時,檔案結尾的數據頁可以解除分配並傳回至文件系統。
本主題內容
開始之前:
若要使用下列項目壓縮資料或記錄檔:
開始之前
限制與制約
- 主要數據檔不能小於模型資料庫中主要檔案的大小。
建議
- 為壓縮檔案所移動的資料可散佈至檔案中的任何可用位置。 如此會造成索引碎片化,並可能導致查詢索引範圍的效能變慢。 若要消除資料片段,可考慮在壓縮之後重建該檔案的索引。
安全
權限
需要成為 系統管理員 固定伺服器角色或 db_owner 固定資料庫角色的成員。
使用 SQL Server Management Studio
壓縮數據或記錄檔
在 [物件總管] 中,連接到 SQL Server 資料庫引擎的實例,然後展開該實例。
展開 [資料庫],然後在您想要壓縮的資料庫上按一下滑鼠右鍵。
指向 [ 工作],指向 [ 壓縮],然後按兩下 [ 檔案]。
資料庫
顯示選取之資料庫的名稱。檔案類型
選取檔案的檔案類型。 可用的選項為 [資料] 和 [記錄檔]。 預設選項為 [資料]。 選取不同的檔案群組類型,會據以變更其他欄位中的選取。檔案群組
從與所選檔案類型關聯的檔案群組清單中選取檔案群組。 選取不同的檔案群組,會據以變更其他欄位中的選取。檔案名稱
從選取檔案群組和檔案類型的可用檔案清單中選取檔案。地點
顯示目前所選檔案的完整路徑。 路徑無法編輯,但可以複製到剪貼簿。目前配置的空間
針對資料檔案,顯示目前的已配置空間。 針對記錄檔,顯示從 DBCC SQLPERF(LOGSPACE) 輸出計算的目前配置空間。可用空間
針對數據檔,會顯示從 DBCC SHOWFILESTATS(fileid) 輸出計算的目前可用可用空間。 針對記錄檔,會顯示從 DBCC SQLPERF(LOGSPACE) 輸出計算的目前可用可用空間。釋出未使用的空間
導致檔案中任何未使用的空間釋出至作業系統,並將檔案壓縮到最後的配置範圍,以減少檔案大小而不移動任何資料。 不會嘗試將列重新放置到尚未配置的頁面。在釋放未使用的空間之前重新整理頁面
相當於執行指定目標檔案大小的 DBCC SHRINKFILE。 選取此選項時,使用者必須在 [將檔案壓縮為] 方塊中指定目標檔案大小。[將檔案壓縮為]
指定壓縮作業的目標檔案大小。 大小不能小於目前配置的空間,或大於配置給檔案的總範圍。 輸入超出最小值或最大值的值,將會在焦點變更或按兩下工具列上的任何按鈕時還原為最小值或最大值。將資料遷移至相同檔案群組中的其他檔案以清空檔案
從指定檔案移轉所有資料。 此選項允許使用 ALTER DATABASE 陳述式卸載檔案。 此選項相當於使用 EMPTYFILE 選項執行 DBCC SHRINKFILE。選取檔案類型和檔案名稱。
或者,選取 [釋出未使用的空間] 核取方塊。
選取此選項會使檔案中任何未使用的空間釋出至作業系統,並將檔案壓縮為最後配置的範圍。 這樣可減少檔案大小而不移動任何資料。
選擇性地選取 [在釋放未使用的空間之前重新整理檔案] 核取方塊。 如果選取此選項,必須指定 [將檔案壓縮為] 的值。 預設會清除此選項。
選取此選項會使檔案中任何未使用的空間釋出至作業系統,並嘗試將資料列重新放置到未配置的頁面。
或者,在壓縮資料庫之後,輸入資料庫檔案所要保留的可用空間最大百分比。 允許的值介於 0 到 99 之間。 只有在啟用 [釋出未使用的空間之前重新整理檔案] 時,才能使用此選項。
您可以選擇性地選取 [將資料遷移至相同檔案群組中的其他檔案以清空檔案] 核取方塊。
選取此選項,可將指定檔案中的所有資料移至檔案群組中的其他檔案。 然後可以刪除空的檔案。 此選項與使用 EMPTYFILE 選項執行 DBCC SHRINKFILE 相同。
按一下 [確定]。
使用 Transact-SQL
壓縮數據或記錄檔
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會使用 DBCC SHRINKFILE,將
DataFile1資料庫中名稱為UserDB的資料檔案大小壓縮為 7 MB。
USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO
另請參閱
DBCC SHRINKDATABASE (Transact-SQL)
壓縮資料庫
刪除資料庫的資料或記錄檔
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)