天天看点

SQL Server 2016新特性:In-Memory OLTP

存储格式修改

在2014,2016中修改了内存优化表的存储格式,新的格式是序列的并且the database is restarted once during database recovery.

ALTER TABLE日志优化,并且可以并发运行

当你在内存优化表执行ALTER TABLE,只有元数据的修改会被写入日志。这样减少了大量的日志。并且很多ALTER TABLE是并行的,这样可以减少语句运行的时间

但是如果包含LOB,就不能并行运行

统计信息

优化表的统计信息可以自动更新。另外可以通过采样来收集统计信息,不需要进行表扫描

内存优化表的并发和heap扫描

内存优化表和索引,只是并行扫描。对于分析的查询可以提高性能。

另外,heap扫描也进行并发扫描。

内存优化表的TSQL增强

在SQL Server 2014很多TSQL语句都不能使用,现在在2016上可以使用了:

支持唯一约束和索引

支持内存优化表间的外键

外键只能引用主键,不能用唯一建

支持check约束

非唯一索引支持key中的null

支持内存优化表上的触发器

只支持AFTER的触发器,INSTADOF触发器不支持

内存优化表中的任何触发器必须使用WITH NATIVE_COMPILATION。

内存优化表,多列,行大小可以超过8060字节。

支持LOB类型

natively compiled的TSQL增强

性能和扩展性的提高

数据大小不在限制

支持多个线程把内存优化表的修改持久化到磁盘

InterOp支持多线程访问

SSMS的增强