首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server日志项收集?

Server日志项收集?
EN

Database Administration用户
提问于 2017-02-21 22:17:40
回答 1查看 65关注 0票数 2

为了更好地平衡成本和性能,我试图更好地理解SQL server是如何进行日志缓冲和刷新的。我知道,除非您使用delayed durability,否则事务的日志条目将在提交时一直刷新到磁盘。然而,我真正好奇的是,还有什么会让我脸红。例如,如果日志磁盘已经忙着为以前的事务刷新条目(因此还不能刷新当前事务),那么其他事务的条目也会同时刷新到磁盘,还是每个事务的条目会被顺序刷新。鉴于在大多数情况下,实际刷新到磁盘是最耗时的操作,而且对于日志记录操作,刷新的时间只受刷新大小的影响最小(至少对于许多小型事务的频繁情况而言),因此对于日志处理器来说,对管道刷新进行流水线刷新似乎是一个很好的优化,因为在进行一次刷新时,等待刷新的任何提交事务的条目都会聚集在一起,而不是一次刷新一次。这将提高吞吐量,但对第一个事务的延迟影响很小(甚至可能提高平均延迟)。是否有人知道在Server中是否进行了这样的优化?如果它是在一个特定的版本中制作的,您能识别该版本以及在哪里找到该信息吗?

EN

回答 1

Database Administration用户

发布于 2017-02-22 00:17:03

然而,我真正好奇的是,还有什么会让我脸红。

任何低于当前请求刷新的LSN的日志也将被刷新。日志记录按顺序放入日志缓冲区,并将所有事务序列化到该数据库的日志缓冲区。注意,单个日志记录不被刷新,它们被放入日志块中,日志块被刷新。

是否有人知道在Server中是否进行了这样的优化?

它被称为组提交,如果它能够更多地聚在一起以获得更好的整体性能(粗略地说),它就会将正常提交延迟几毫秒。我相信它是在2008年增加的。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/165092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档