收縮數據庫 DBCC SHRINKFILE


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

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

 

  操作命令:

  現在我一個庫ASFCORE的日志文件已經達到30G了,數據文件為1G,如果要收縮日志文件,則執行如下命令即可!

  •   查看數據庫的recovery_model_desc類型

    SELECT NAME, recovery_model_desc FROM sys.databases

  •   如果是FULL類型,修改為SIMPLE類型  

    ALTER DATABASE ASFCORE SET Recovery simple

  •   收縮日志文件大小(單位是M)

    DBCC SHRINKFILE (N'ASFCORE_log' , 10)

  •   檢查日志文件名稱

    USE ASFCORE
    SELECT NAME, size FROM sys.database_files

  •   恢復成FULL類型

    ALTER DATABASE ASFCORE SET Recovery FULL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM