sql-server - 大事务日志如何影响性能?

标签 sql-server

我发现我们的数据库具有完整恢复模型,并且具有 3GB 事务日志。

随着日志变大,这将如何影响数据库的性能以及访问数据库的应用程序的性能?

最佳答案

推荐的最佳实践是为 SQL Server 事务日志文件分配其自己的磁盘或 LUN。

正如其他发帖者所提到的,这是为了避免磁盘上事务日志文件的碎片,并且还避免/最小化磁盘争用。

理想的情况是让您的 DBA 提前为您的数据库环境分配足够的日志空间,即一次性分配 x GB 的数据。在专用磁盘上,这将创建连续的分配,从而避免碎片。

如果您需要增加事务日志,那么您应该再次努力以相当大的 block 来执行此操作,以便努力连续分配。

您还应该注意不要收缩事务日志文件,因为重复收缩和自动增长可能会导致磁盘上的数据文件碎片。

我发现最好将自动增长数据库属性视为故障保护,即您的 DBA 应该主动监视事务日志空间(可能通过设置警报),以便他们可以相应地增加事务日志文件大小来支持您的数据库使用要求但自动增长属性可以确保您的数据库在发生意外增长时可以继续正常运行。

较大的事务日志文件本身如果不会对性能产生不利影响,因为 SQL Server 会按顺序写入日志,因此只要您适本地管理整体日志大小和额外空间的分配,您就不必担心。

关于sql-server - 大事务日志如何影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1251570/

相关文章:

sql-server - 将数据库和 Web 服务器分开时,RDS 性能真的很差吗?

sql - SQL Server 的端口号

c# - 如何将List<T>插入数据库

sql - 如何用 float 显示尾随零

sql-server - 目前在 SQL Server 中使用多个左连接 - 有更简单的方法吗?

c# - 无法在 SQL Server 2012 中创建数据库

mysql - MSSQL 到 MySQL 迁移 - UCS-2 代理项对的字符编码问题,如何从 MSSQL 数据库中删除这些问题?

sql-server - SQL Server Express 安装失败

sql-server - 更新 Excel 后,我无法再使用 SQL 查询获取数据

sql - 如何从一个日期获取下一个记录日期和从一个日期获取最后一个记录日期?