程序猿改变世界
如果您知道事务日志文件包含将不需要的未使用空间,则通过减少事务日志的大小,可以回收过多空间。此过程称为“收缩”日志文件。
仅当数据库处于联机状态,而且至少一个虚拟日志文件可用时,收缩才会发生。在某些情况下,直到下一个日志截断后,才能收缩日志。
在计划收缩文件时,请考虑以下信息:
在执行会产生许多未使用空间的操作(如截断表或删除表操作)后,执行收缩操作最有效。
大多数数据库都需要一些可用空间,以供常规日常操作使用。 如果反复收缩数据库并注意到数据库大小变大,则表明收缩的空间是常规操作所必需的。 在这种情况下,反复收缩数据库是一种无谓的操作。
收缩操作不会保留数据库中索引的碎片状态,通常还会在一定程度上增加碎片。 这是不要反复收缩数据库的另一个原因。
按顺序而非同时缩小同一数据库中的多个文件。 系统表上的连接可能会因为阻止而导致延迟。
以下示例将 UserDB
用户数据库中名为 DataFile1
的数据文件的大小收缩到 7 MB。
USE UserDB; GO DBCC SHRINKFILE (DataFile1, 7); GO
以下示例将 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
【个人微信】
【时间去哪儿了】
教育类博客,关注知识的分享与交流。
欢迎关注公众号!
加我微信
Copyright © 2014-2016 timegowhere.com. All rights reserved. 粤ICP备15081222号