收缩数据库 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

posted @   TwinStudio  阅读(238)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示