SQL Server本来就是in memory的,任何数据库都会用大量内存去cache磁盘数据,所以未来内存越来越大并不是用in memory字面意思就能说明的优势。oltp除非降低可靠性,凭什么in memory能提高性能?都要落盘和集群才能言及可靠性。
一、SQL Server 2014的集成内存OLTP(Hekaton)有什么战略意义
1、SQL Server本来就是in memory的,任何数据库都会用大量内存去cache磁盘数据,所以未来内存越来越大并不是用in memory字面意思就能说明的优势。
2、oltp除非降低可靠性,凭什么in memory能提高性能?都要落盘和集群才能言及可靠性,然而这一个是磁盘为主的问题,一个是网络为主的问题,in memory到底在哪里产生了建树?
3、据我所知sql server本来就支持mvcc的,只是默认没开snapshot级别的事务模式,snapshot我理解就是multi-version的意思,不知道对不对。
我凭空推测下,in memory表如果要做到实质性的提升,可能主要就是优化内存里的数据结构而不是经典的cache模式,比如列存储,抛弃btree(为磁盘设计的)等。
然后是增加很多in memory适合做的东西,比如高并发的锁操作。一台数据库就能做到队列的功能,并能保证可靠性。
但是对于oltp,必须落盘的东西,除了改变落盘策略,通过降低可靠性提高性能,其他还真想不到能怎么提升。但是降低可靠性提升性能的落盘策略,同样适用于普通表。
延伸阅读:
二、什么是数据库
有组织且相互关联的数据的集合称为数据库。database 是一个存储数据的应用程序。它有各种应用程序,包括 MySQL、Microsoft SQL、Oracle 等。
每个数据库都不同,因为每个公司/组织都有其结构、数据类型和约束。数据库 会定期更新,以获取有关公司的最新数据。
数据库可以手动和数字方式维护。在这个数据无处不在的时代,数字数据库是优选和使用。数据库的大小取决于组织的数据和需求。
数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。
例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。
有了这个”数据仓库”就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那的人事管理就可以达到极高的水平。
此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种“数据库”,使其可以利用计算机实现财务、仓库、生产的自动化管理。