Sql Server 清除日志的存储过程 Procedure of cleaning sql server's log
AS
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
SELECT @LogicalFileName = rtrim(name),
@MaxMinutes = 10, -- 最大执行时间
@NewSize = 10 -- 最小空间
from sysfiles where status & 0x40 = 0x40
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size -- in 8K pages
FROM sysfiles
WHERE name = @LogicalFileName
SELECT db_name() +'日志原始大小' +
CONVERT(VARCHAR(30),@OriginalSize) + ' pages/ 8K 或 ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
-- Wrap log and truncate it.
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ['+ db_name() + '] WITH TRUNCATE_ONLY'
-- Try an initial shrink.
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) -- the log has not shrunk
AND (@OriginalSize * 8 /1024) > @NewSize -- The value passed in for new size is smaller than the current size.
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log') -- Because it is a char field it inserts 8000 bytes.
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END -- update
EXEC (@TruncLog) -- See if a trunc of the log shrinks it.
END -- outer loop
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
SELECT db_name() +'日志最后大小' +
CONVERT(VARCHAR(30),size) + ' pages/ 8K 或 ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
PRINT '*** 数据库日志压缩成功 ***'
转载于:https://www.cnblogs.com/Magicworks/archive/2008/06/05/1214518.html
Sql Server 清除日志的存储过程 Procedure of cleaning sql server's log相关推荐
- sql server 清除日志
SQL2008 的收缩日志 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消: (SQL2005) Backup Log DNNam ...
- SQL Server 数据库清除日志的方法
方法一: 1.打开查询分析器,输入命令 BACKUP LOG database_name WITH NO_LOG 2.再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件- ...
- 正文内容 SQL Server 数据库清除日志
SQLSERVER的数据库日志占用很大的空间,下面提供三种方法用于清除无用的数据库日志文件 方法一: 1.打开查询分析器,输入命令 BACKUP LOG database_name WITH NO_L ...
- 读取SQL Server事务日志
介绍 (Introduction) There has always been some debate as to whether or not there are real benefits to ...
- 了解SQL Server事务日志备份和完整备份的日志序列号
This article explores the SQL Server Transaction log backups and log sequence number (LSN) in combin ...
- 如何使用损坏或删除SQL Server事务日志文件重建数据库
This is the last article, but not the least one, in the SQL Server Transaction Log series. In this s ...
- SQL Server事务日志体系结构
This article will cover SQL Server transaction log architecture including file topography, basic ove ...
- 什么是SQL Server事务日志中的虚拟日志文件?
什么是SQL Server事务日志文件? (What is a SQL Server transaction log file?) SQL Server事务日志文件是每个SQL Server数据库的组 ...
- SQL Server事务日志备份,截断和缩减操作
In this article, we will cover SQL Server Transaction log backups, truncate and shrink operations wi ...
最新文章
- Java之戳中痛点之 synchronized 深度解析
- RefreshListView中onItemClick点击错位
- 红黑树的删除_Python实现红黑树的删除操作
- 查询方式的一般使用1
- 出生日期,看出你的天赋
- ------shell学习
- matplotlib 快速绘图
- 摘来的去视频网站的广告方法
- 【备忘】mysql常用操作汇总
- python用什么编译器-Python必学之编译器用哪个好?你用错了吧!
- Python Django项目实例二
- 腾讯2021校园招聘编程题
- android应用程序设计答案,Android移动应用程序设计智慧职教MOOC答案
- RHCSA/Linux基础
- EJB到底是什么?(推荐)
- UI设计的色彩搭配及原则(转载)
- iOS Tagged Pointer
- Android系统添加USB共享网络
- 元宇宙务“虚”,网易智企务“实”
- 传奇服务器账号禁止登陆,传奇私服网关禁止登陆
热门文章
- 转帖一篇:截取密码(VC++)学习消息VC++的好处
- CVPR2017: Learning Deep Context-aware Features over Body and Latent Parts for
- [Caffe]:关于*** Aborted at 1479432790 (unix time) try date -d @1479432790 错误的另一种原因
- 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法
- [学习笔记]python
- CTFshow php特性 web110
- CTFshow 命令执行 web59
- padarray函数
- 2.2.4 RMSprop
- 1.2.3 使用向量化进行加速计算