且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SQL Server 2016新特性:In-Memory OLTP

更新时间:2022-06-12 08:50:15

存储格式修改
在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的增强