資料庫 收縮

2021-09-06 06:06:30 字數 1201 閱讀 2183

引用:

資料庫中的每個檔案都可以通過刪除未使用的頁的方法來減小。儘管資料庫引擎會有效地重新使用空間,但某個檔案多次出現無需原來大小的情況後,收縮檔案就變得很有必要了。資料和事務日誌檔案都可以減小(收縮)。可以成組或單獨地手動收縮資料庫檔案,也可以設定資料庫,使其按照指定的間隔自動收縮。

檔案始終從末尾開始收縮。例如,如果有個 5 gb 的檔案,並且在 dbcc shrinkfile 語句中將 target_size 指定為 4 gb,則資料庫引擎將從檔案的最後乙個 1 gb 開始釋放盡可能多的空間。如果檔案中被釋放的部分包含使用過的頁,則資料庫引擎先將這些頁重新放置到檔案的保留部分。只能將資料庫收縮到沒有剩餘的可用空間為止。例如,如果某個 5 gb 的資料庫有 4 gb 的資料,並且在 dbcc shrinkfile 語句中將 target_size 指定為 3 gb,則只能釋放 1 gb。

自動資料庫收縮

將 auto_shrink 資料庫選項設定為 on 後,資料庫引擎將自動收縮具有可用空間的資料庫。此選項可以使用 alter database 語句來進行設定。預設情況下,此選項設定為 off。資料庫引擎會定期檢查每個資料庫的空間使用情況。如果某個資料庫的 auto_shrink 選項設定為 on,則資料庫引擎將減少資料庫中檔案的大小。該活動在後台進行,並且不影響資料庫內的使用者活動。

將資料庫設定為自動收縮

alter database (transact-sql)

手動資料庫收縮

您可以使用 dbcc shrinkdatabase 語句或 dbcc shrinkfile 語句來手動收縮資料庫或資料庫中的檔案。如果 dbcc shrinkdatabase 或 dbcc shrinkfile 語句無法**日誌檔案中的所有指定空間,則該語句將發出資訊性訊息,指明必須執行什麼操作以便釋放更多空間。有關收縮日誌檔案的詳細資訊,請參閱收縮事務日誌。

在該過程中任意時間都可停止 dbcc shrinkdatabase 和 dbcc shrinkfile 操作,所有已完成工作都將保留。

在使用 dbcc shrinkdatabase 語句時,您無法將整個資料庫收縮得比其初始大小更小。因此,如果資料庫建立時的大小為 10 mb,後來增長到 100 mb,則該資料庫最小只能收縮到 10 mb,即使已經刪除資料庫的所有資料也是如此。

但是,使用 dbcc shrinkfile 語句時,可以將各個資料庫檔案收縮得比其初始大小更小。必須對每個檔案分別進行收縮,而不能嘗試收縮整個資料庫。

收縮資料庫

sql 2008 右擊要清除日誌的資料庫 選擇 屬性 在資料庫屬性中 選擇 選項 在右邊 恢復模式 下拉列表框中 選擇 簡單 單擊確定 返回 右擊要清除日誌的資料庫 選擇 任務 收縮 資料庫 單擊確定 完成收縮 指令碼 use master goalter database dnname set r...

收縮資料庫

顯示當前資料庫的空間使用情況 exec sp spaceused 顯示表的空間使用 exex sp spaceused objname wct updateusage true 顯示整個伺服器中所有資料庫的日誌使用情況 dbcc sqlperf logspace 收縮資料庫 dbcc shrinkd...

資料庫 收縮

引用 資料庫中的每個檔案都可以通過刪除未使用的頁的方法來減小。儘管資料庫引擎會有效地重新使用空間,但某個檔案多次出現無需原來大小的情況後,收縮檔案就變得很有必要了。資料和事務日誌檔案都可以減小 收縮 可以成組或單獨地手動收縮資料庫檔案,也可以設定資料庫,使其按照指定的間隔自動收縮。檔案始終從末尾開始...