0

在几天前的一次会议上,有人说“使用 Hekaton 会增加事务日志的大小,从而增加故障转移的时间”,同时描述了使用 Hekaton 内存表的 AlwaysOn SQL 集群的挑战。我不是 SQL 专家,所以想知道这是否是一个真实的陈述,如果是这样,是什么让 Hekaton 事务日志比没有 Hekaton 时更大?

4

2 回答 2

1

我相信情况正好相反。事务记录是描述事务的逻辑事务,而不是与非内存表一起对索引进行的所有修改。

日志包含足以重做事务的已提交事务的逻辑效果。这些更改被记录为标记有它们所属的表的行版本的插入和删除。没有记录撤消信息。

不记录 Hekaton 索引操作。所有索引都在恢复时重建。

检查点实际上是日志的压缩表示。检查点允许截断日志并提高崩溃恢复性能。

由于事务日志的尾部通常是瓶颈,因此减少附加到日志的日志记录数量可以提高可伸缩性并显着提高效率。此外,与每次操作生成一条日志记录的系统相比,每个事务的日志内容所需的空间更少

有关 Hekaton 的 Microsoft 文档包含这些详细信息。

http://research.microsoft.com/pubs/193594/Hekaton%20-%20Sigmod2013%20final.pdf

于 2015-05-14T02:14:14.620 回答
1

我同意检查点应该改善崩溃恢复。

话虽如此,恢复 Hekaton 日志记录的速度非常快,因为该进程执行内存分配和一些计算比执行磁盘操作要小得多。

Hekaton 在 Azure(2015 年 11 月)中作为预览版提供,因此您可以在那里尝试您的工作负载。https://azure.microsoft.com/en-us/blog/azure-sql-database-in-memory-oltp-real-time-operational-analytics-now-in-public-preview/

于 2015-11-12T18:00:40.560 回答