mssql sqlserver 运行事务对日志空间的影响


摘要:
下文主要讲述sql脚本中运行事务,对日志空间的影响
实验环境:sqlserver 2012


   
 
--例:
  --创建测试数据库
CREATE DATABASE testDataBase
GO
-- 修改数据库恢复模式为 简单模式
ALTER DATABASE testDataBase SET RECOVERY SIMPLE WITH NO_WAIT
GO
 
---建数据表
USE testDataBase
GO
CREATE TABLE test (infotest1 CHAR(4000),infotest2 CHAR(4000));
GO
 
 ---测试事务 
BEGIN TRANSACTION
 
CHECKPOINT  --将更改信息写入硬盘
--检查日志空间信息
SELECT total_log_size_in_bytes*1.0/1024/1024 as [总日志大小M],
 used_log_space_in_bytes*1.0/1024/1024 [已用日志大小M],
 (total_log_size_in_bytes - used_log_space_in_bytes)*1.0/1024/1024 
 AS [空闲日志大小M] 
FROM sys.dm_db_log_space_usage
GO
 

 --插入数据
INSERT INTO test (infotest1, infotest2)
SELECT '11111','222222'
GO 1000
 
CHECKPOINT  
--再次检测日志大小
SELECT total_log_size_in_bytes*1.0/1024/1024 as [总日志大小M],
 used_log_space_in_bytes*1.0/1024/1024 [已用日志大小M],
 (total_log_size_in_bytes - used_log_space_in_bytes)*1.0/1024/1024 
 AS [空闲日志大小M] 
FROM sys.dm_db_log_space_usage
GO 
 
COMMIT tran

GO
 
CHECKPOINT
--再次检测日志大小
SELECT total_log_size_in_bytes*1.0/1024/1024 as [总日志大小M],
 used_log_space_in_bytes*1.0/1024/1024 [已用日志大小M],
 (total_log_size_in_bytes - used_log_space_in_bytes)*1.0/1024/1024 
 AS [空闲日志大小M] 
FROM sys.dm_db_log_space_usage
GO
 

 
--清除数据库和日志
USE master
GO
DROP DATABASE testDataBase
GO
mssql_sqlserver_事务运行——日志

mssql_sqlserver_事务运行——日志