快全王软件:全网软件,一站称王 最新更新 专题汇总 软件标签
当前位置: 首页 > 新闻资讯 > 数据库类

MSSQL 清空日志 删除日志文件_MSSQL 日志清理优化

时间:2026-04-30 12:42:52  

最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,造成新数据库的日志文件非常大;或者数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。于是想把日志文件删除。最简单就是先分离数据库-》删除日志文件-》最后附加数据,我这里需要在SSIS中调用,所以已sql脚本为主。

两种简单的清除日志的方法:

一分离附加法:
1、首先把数据库分离,分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离,其中药勾选删除连接!

分离后在数据库列表将看不到已分离的数据库。

2、删除数据库的LOG文件数据库文件夹下的对应数据库的 ldf文件

3、附加数据库,附加的时候会提醒找不到log文件。到时附加上后会自动创建一个新的日志文件,从而达到清理数据库的目的

二、sql语句清除mssql日志

DUMP TRANSACTION TestDB WITH NO_LOG 清除日志

DBCC SHRINKFILE (TestDB_log,1) 收缩数据库文件

BACKUP LOG TestDB WITH NO_LOG 截断事务日志

该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。

首先我们需要获取数据库文件的路径:

declare @logfilename varchar(100)
declare @datafilename varchar(100)
select @logfilename=physical_name from sys.database_files where type=1
select @datafilename=physical_name from sys.database_files where type=0

然后切换到master下,分离数据库

use master
exec sp_detach_db @dbname=TestVFA;

紧接下来就是删除数据库 日志文件
----Remove file
DECLARE @Result int
DECLARE @FSO_Token int
EXEC @Result = sp_OACreate Scripting.FileSystemObject, @FSO_Token OUTPUT
EXEC @Result = sp_OAMethod @FSO_Token, DeleteFile, NULL, @logfilename
EXEC @Result = sp_OADestroy @FSO_Token
最后就是附加数据库
exec sp_attach_single_file_db @dbname=TestVFA,@physname=@datafilename

注意:默认Ole Automation Procedures 是禁用的我们需要启用它

exec sp_configure show advanced options, 1;
RECONFIGURE;
exec sp_configure Ole Automation Procedures,1;
RECONFIGURE;

标签: SQL服务器优化 数据库性能优化 日志文件清理 MSSQL日志删除

相关电脑游戏
  • 热门文章
  • 热门合集
  • 鸿蒙理财软件 汇集鸿蒙理财软件中心,甄选资产管理应用,整理鸿蒙理财大全,支持记账风控、资产规划鸿蒙专属管理工具.
  • 鸿蒙旅游软件 精选热门鸿蒙旅游软件推荐,选用出行规划工具,打造鸿蒙旅游基地,提供订票导航、旅行攻略一站式出行服务.
  • 苹果动作游戏 汇聚苹果动作游戏,精选动作手游应用,整理动作游戏大全,格斗闯关、热血冒险各类高画质 iOS 动作游戏.
  • 苹果桌面游戏 整理热门苹果桌面游戏,配备桌游休闲工具,搭建桌面游戏基地,棋牌卡牌、策略休闲类桌面游戏应有尽有.
  • 苹果体育游戏 汇集热门苹果体育游戏,设立体育手游专区,收纳体育游戏资源库,足球篮球、格斗竞技各类体育手游大全.

关于本站|免责声明|发布软件 | 网站地图

备案号:琼ICP备2026002670号-8|

抵制不良游戏,拒绝盗版游戏。 注意自我保护,谨防受骗上当。 适度游戏益脑,沉迷游戏伤身。 合理安排时间,享受健康生活。