在最初设计SQL Server时由于内存价格高昂,因此将不需要处理的数据存储在磁盘上。在过去的30年里内存价格已经大幅下降,因此不再需要这样的设计。与此同时,多核服务器已广泛普及,今天,可以以低于5万美元的价格购买一台具有32内核和1TB内存的服务器。在许多生产环境,OLTP数据库都不会大于1TB,即使这种情况不适用大多数,我们也需要重新评估将数据存储在磁盘上的利弊以及将数据读入内存时产生的I/O开销。此外,在OLTP数据库中,被更新的数据需要重新写回磁盘,由此产生的性能开销不容忽视。内存优化表与基于磁盘的表在存储方式上完全不同,这种新的数据结构可以更加高效的访问和处理数据。
技术的发展让服务器拥有更多内核及内存,为此,微软SQL Server团队开始构建为大容量内存和多核CPU进行优化的数据库引擎,该引擎的开发代号为“Hekaton”,本文将详细介绍。
设计初衷和目的
开发真正的内存数据库需满足三个基本要求:1)将工作所需的大部分或全部数据存储至内存;2)更低的数据