当前位置:首页 » 数据库知识 » 正文

收缩事务日志

2016年9月19日 11:54:18  分类: 数据库知识  参与: 人  点这评论

如果您知道事务日志文件包含将不需要的未使用空间,则通过减少事务日志的大小,可以回收过多空间。此过程称为“收缩”日志文件。

仅当数据库处于联机状态,而且至少一个虚拟日志文件可用时,收缩才会发生。在某些情况下,直到下一个日志截断后,才能收缩日志。

在计划收缩文件时,请考虑以下信息:

  • 在执行会产生许多未使用空间的操作(如截断表或删除表操作)后,执行收缩操作最有效。

  • 大多数数据库都需要一些可用空间,以供常规日常操作使用。 如果反复收缩数据库并注意到数据库大小变大,则表明收缩的空间是常规操作所必需的。 在这种情况下,反复收缩数据库是一种无谓的操作。

  • 收缩操作不会保留数据库中索引的碎片状态,通常还会在一定程度上增加碎片。 这是不要反复收缩数据库的另一个原因。

  • 按顺序而非同时缩小同一数据库中的多个文件。 系统表上的连接可能会因为阻止而导致延迟。

A.将数据文件收缩到指定的目标大小

以下示例将 UserDB 用户数据库中名为 DataFile1 的数据文件的大小收缩到 7 MB。

USE UserDB;  
GO  
DBCC SHRINKFILE (DataFile1, 7);  
GO


B.将日志文件收缩到指定的目标大小

以下示例将 AdventureWorks 数据库中的日志文件收缩到 1 MB。 若要允许 DBCC SHRINKFILE 命令收缩文件,首先需要通过将数据库恢复模式设置为 SIMPLE 来截断该文件。

USE AdventureWorks2012;  
GO  
-- 通过将数据库恢复模式设置为简单模式来截断事务日志.  
ALTER DATABASE AdventureWorks2012 SET RECOVERY SIMPLE;  
GO  
-- 收缩事务日志到 1 MB.  
DBCC SHRINKFILE (AdventureWorks2012_Log, 1);  
GO  
-- 恢复数据库恢复模式为完整模式.  
ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;  
GO


参考: https://msdn.microsoft.com/zh-cn/library/ms178037.aspx


来源:时间去哪儿了博客(微信/QQ号:903918446),转载请保留出处和链接!

本文链接:http://timegowhere.com/post/shrink_log_file.html

本文标签:收缩事务日志  数据库    

<< 上一篇下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

搜索

网站分类

Tags列表

最新留言

微信公众号【双语悦读】

    【个人微信】

站点地图 | 网站标签 | 给我留言

Copyright © 2014-2016 timegowhere.com. All rights reserved. 粤ICP备15081222号