缓存池扩展(Buffer Pool Extensions) 缓存池扩展 的想法非常简单:把页文件存储在非常快的存储上,例如SSD硬盘,用来扩展缓存池。缓存池扩展来得非常方便,如果你不能给你的数据库服务器物理上增加更多的内存,可以考虑使用缓存池扩展。 9 S# a+ Q, Y$ L0 M# H! Z" p7 {6 t
2 Y" y+ Z6 ~6 }* \5 o
资源调控器(Resource Governor) 资源调控器 首次是在SQL Server 2008里引入的,但那个时候还不是个成熟的技术,因为你不能在存储级别调控I/O操作,对于指定工作负荷组,你不能限制缓存池大小。在SQL Server 2014里这些都改变了,因为现在你可以压制I/O操作。限制缓冲池使用率还是不行,但谁会知道在SQL Server 2016里会怎样呢:)。
3 X* f+ \' o$ a3 E; ~/ e5 G( x' A$ v/ c' y
锁优先级(Lock Priorities) 或许你已经知道,在企业版本里,SQL Server提供你在线操作,或者我可以称它们为“近乎在线操作”。它们近乎是在线的,因为内部SQL Server还是要获取一些锁,这会导致阻塞情况。因此SQL Server 2014引入了 锁优先级 ,在那里如果有这样的情况发生,你可以控制SQL Server如何应对。1 |6 Q& F2 B v; l6 l4 |
. B9 K% y1 p) ^ p+ @( l聚集列存储索引(Clustered Column Store Indexes) 在SQL Server 2014里引入的最热门的提升是 聚集列存储索引 ,在SQL Server里,它是惊艳的全新方式来处理列存储数据。另外聚集列存储索引也会直接改变——不用像分区切换这样的技巧。
" d0 w$ I& B- i h, L" h! J; E. ]: o4 Y) v9 o
内存优化表(In-Memory OLTP) 使用 内存优化表 微软声称你的工作负荷性能可以提升100倍。酷炫叼咋天了!现在一切都直接存储在内存里,不会涉及你的物理存储(包括事务日志,如果你想要的话)。另外内存优化表基于所谓的无锁数据结构,意味着锁,阻塞, 闩锁,旋转锁统统消失。当然,使用这种有前途的方法是有副作用的,还是有限制的…… / h& O$ {, O k; W0 K9 q; Z6 W
! B4 A: u" Y9 d$ ]3 y0 o9 b6 C
延迟事务(Delayed Transactions) 你工作负荷的生产力不管有多好,最后的障碍和瓶颈每次都是事务日志。因为SQL Server使用了预先写入日志机制(Write-Ahead Logging mechanism),在事务提交前,事务必须总是物理写入到事务日志。但你的事务日志在慢的存储上,你的性能和生产力就会受伤害。因此SQL Server实现所谓的 延迟事务 ……
7 l! z6 {3 d) T t# Z基数计算(Cardinality Estimation) 在关系数据库里, 基数计算 是最重要的东西,因为这些基数计算会流入查询优化器,它的工作是生成足够好的执行计划。在SQL Server 2014里微软完全重写了基数计算来克服一些限制,基于历来这个是非常重要的组件。 4 a" A4 ^2 _; Z7 E3 \% D& m2 f* u: M m
0 P) }5 a9 m2 J3 |; V! ^ m" @
2 k0 X3 o. `; [' }. Y% F& j
|