SQL Server虚拟日志文件数量的合理设定

简介:

大家都知道SQL Server日志文件用来记录事物日志,但是SQL Server数据库引擎内部将每一物理日志文件分成多个虚拟日志文件管理。而且虚拟日志的多少回影响数据库的性能。

 

虚拟日志文件没有固定大小,且物理日志文件所包含的虚拟日志文件数不固定。数据库引擎在创建或扩展日志文件时动态选择虚拟日志文件的大小。

 

数据库引擎尝试维护少量的虚拟文件. 只有当日志文件使用较小的 size 和 growth_increment 值定义时,虚拟日志文件才会影响系统性能。如果这些日志文件由于许多微小增量而增长到很大,则它们将具有很多虚拟日志文件。这会降低数据库启动以及日志备份和还原操作的速度。

 

那是不是虚拟文件越少越好呢?也不是。

 

我们知道事务日志是一种回绕的文件,如果每个虚拟日志的文件大小为8GB,那么只有这8GB的文件全部变成不活动时才会被清除,这样SQL Server一次就需要清除8GB的日志,也会影响性能。

 

所以需要将虚拟日志的大小维护在一个合理的水平。这里先看一下虚拟日志的增长:

 

日志增长值64MB = 4VLFs

日志增长大于 64MB小于1GB = 8 VLFs

日志大于1GB = 16 VLFs

 

Kimberly给出的建议是对于日志文件比较大的系统虚拟大小文件为512M,也就是起始日志文件大小为4GB(16个VLF),然后每次以4GB的速度增长,这样可以提高性能。

 

使用DBCC Loginfo可以查看VLF的数量:

 

这里我创建Allentest数据库,LDF文件大小为24MB,可以看到初始为4个VLF文件,活动的VLF文件1(status=2)。创建一张表执行下面的语句使日志增长,可以看到已经变成2个活动的VLF:

 

create table test(namevarchar(20))

insert into testvalues('allentest')

go 100000

 

 

备份LOG文件后查看VLF的状态:

 

backup logallentesttodisk='d:\mssql\allentest.trn'

 


可以看到第一个VLF文件已经变为可用状态了,但是第二个VLF文件因为没有被写满所以继续使用。

 

更多信息可以参考:事务日志物理体系结构


本文转自 lzf328 51CTO博客,原文链接:http://blog.51cto.com/lzf328/1028717

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
11月前
|
SQL 传感器 人工智能
生成更智能,调试更轻松,SLS SQL Copilot 焕新登场!
阿里云日志服务(SLS)推出智能分析助手 SLS SQL Copilot,融合 AI 技术与日志分析最佳实践,将自然语言转换为 SQL 查询,降低使用门槛,提升查询效率。其具备原生集成、智能语义理解与高效执行能力,助力用户快速洞察日志数据价值,实现智能化日志分析新体验。
696 1
|
SQL Java 数据库连接
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
|
10月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
458 6
|
SQL Java 数据库连接
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
|
SQL 存储 缓存
MySQL进阶突击系列(02)一条更新SQL执行过程 | 讲透undoLog、redoLog、binLog日志三宝
本文详细介绍了MySQL中update SQL执行过程涉及的undoLog、redoLog和binLog三种日志的作用及其工作原理,包括它们如何确保数据的一致性和完整性,以及在事务提交过程中各自的角色。同时,文章还探讨了这些日志在故障恢复中的重要性,强调了合理配置相关参数对于提高系统稳定性的必要性。
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1714 152