以下摘录自Itzik Ben-Gan 所著的《T-SQL 查询》第 10 章。他列出了内存中 OLTP 表相对于传统页面的优势。
您还可以省去用于跟踪哪些页面在内存中、哪些页面在缓冲池中、给定页面在缓冲池中的位置、该页面的内存中副本是否已被修改(使得它“脏”并要求最终将其刷新回磁盘),等等。
这让我很困惑。它的编写方式就好像传统 SQL Server 页面“在内存中”和“在缓冲池中”之间存在差异。有这样的区别吗?我知道 SQL Server 有各种缓存,但我不知道其中任何一个与组成表的页面相关。据我所知,唯一相关的缓存是缓冲池。
他们曾经是同义词。但从 SQL Server 2014 开始,您可以使用Buffer Pool Extension将缓冲池部分存储在内存中,部分存储在快速本地闪存上。