开发/数据库

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > 开发/数据库

目标OLTP王者,SQL Server 2014新特性Top10

作者:Sean出处:IT专家网2014-04-14 10:24

  【IT专家网】作为ClouldOS的一部分,微软日前发布了其SQL Server的最新版本SQL Server 2014,本文总结了该版本的十个强大的新特性,其中最大的亮点,就是性能的改进和HA(高可用性)的增强。

  SQL Server 2014争夺OLTP之王意图明显。完全绕过BI增强功能,微软已经从多个战场迎战OLTP性能问题:以内存内(in-memory)表应对缓慢的磁盘性能,以延迟持久性应对慢日志的性能,并以维护并发应对锁优先。除此之外,新版本的SQL Server还通过新的资源调控器解决I/O问题,以固态硬盘(SSD)扩展缓冲池解决了内存问题,并通过与Azure云的集成提高了可用性。

  内存OLTP

  对于OLTP而言,SQL Server 2014最令人兴奋的新功能是内存OLTP(又名“Hekaton”),它允许将各个表移动到特殊的内存内结构。性能最多可以提升30倍。这些表有许多限制和特殊的要求,因此它们不能适用于任何情况。但是,当它们这样做,你的OLTP性能将突破天花板。这比其他的内存解决方案更好之处在于,不需要把整个数据库放置在内存中。你也可以通过将现有的存储过程转换到内存存储过程以获得更多的性能。你需要测试以确保你的表是兼容的,但如果是兼容的,你一定会喜欢这个功能。

1

  托管备份到Azure

  有大量的中小型企业没有合格的在职数据库管理员。很多时候这些企业不知道他们的备份没有被妥善处理,等到发现的时候为时已晚。顾名思义,Managed Backup会自动根据你定义的恢复间隔和工作负载模式备份数据库(或实例)。当系统确定数据发生了足够显著的变化,它发送一个备份到Azure上。此功能仅适用于Azure Blob存储。但因为你的备份已经是offsite,没有必要担心磁带。

2

  Azure VM可用性副本

  有了SQL Server 2014,你可以定义一个驻留在Azure的可用性组副本。当一个主要故障发生时,你必须手动地故障转移,但起来和运行的速度会非常快。如果你需要可靠的offside HA,但没有第二个站点,那么这个特性能够给你。你只管选择你喜欢的位置创建Azure VM。

3

  SQL Server Data Files in Azure

  所谓Data Files in Azure是这样的:你的数据库运行在本地数据中心,而数据库文件本身在一个Azure Blob容器中。这可以为DR和迁移带来优势。但取决于数据库的大小和它的工作负载,在互联网上推送数据给每一项交易的潜在性能成本可能过高。更好地利用这一特性的方法,可能是存储数据文件在同一个数据中心的Azure虚拟机中。目前的限制,一个Azure VM只能挂载16个盘。

4

  可更新的列存储索引

  SQL Server的列存储索引为数据仓库的性能带来了巨大的推动作用,但有一个障碍:它们不能被更新。有了SQL Server 2014,现在它们可以更新了。这意味着在每次加载仓库表的时候,你不再需要删除并重新创建列存储索引。不仅如此,更新性也意味着你可以为某些OLTP应用程序查看列存储索引。需要说明的是,表上必须有群集的列存储索引。非群集列存储不被支持。

5

  I/O资源调控器

  磁盘I/O是一个数据库系统中典型的最有限的资源,而且一个大的或者流氓的查询往往占用更多宝贵的I/O资源,超出你的负担能力。微软终于给我们对失控的I/O的一些控制。通过I/O资源调控器,你现在可以把查询放到它们自己的资源池,并限制每卷的I/O。 MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置最小的和最大的每秒读取或写入。

6

  MIN_IOPS_PER_VOLUME保留每秒I/O事务的最少数量,而MAX_IOPS_PER_VOLUME提供最大的数量。这个最大不限制一个查询可以执行的I/O操作的数量,但仅仅是独占的盘保持它。这样你的大查询仍然可以运行,而其他的事情也将运行良好。I/O控制一个很好的运用,是在磁盘超载的时候,保留一些IOPS让管理员能够调查问题。

7

  延迟持久性

  在SQL Server中,数据的更改首先写入到日志。这就是所谓的预写日志(WAL)。控制权不会返回给应用程序,直到日志被写入到磁盘(在这个过程称为“硬化”)。延迟持久性可让你在日志硬化之前将控制权返回给应用程序。如果你有日志的性能问题,这样可以加快交易。不过,代价是你要牺牲可恢复性。如果在数据库在日志提交到磁盘之前有问题,那么你会永远失去那些交易。但如果你的日志性能严重影响应用的响应时间,这样的风险可能是值得的。

8

  SSD扩展缓冲池

  为SQL Server 2014创建一个扩展缓冲池(buffer pool extension),如同能够在Windows中定义不同的页面文件。随着数据页移动到内存中,它们就开始填满缓冲池。如果缓冲池填满,不常用的页面将被分页到磁盘。然后,当你又需要它们的时候,它们会与在缓冲池中的其他东西交换,回到内存中。扩展缓冲池选项允许你定义一个SSD作为缓存文件的位置。因为SSD比机械盘快,在某些情况下可以显著地提高性能。扩展缓冲池文件可以定义到你的内存的32倍大小。

9

  增量统计信息

  更新SQL Server中的统计数据相当繁琐。以前,每当数据需要重建,你不能只更新这些新项目,而是必须更新一切。这意味着2亿行的表只有4000万行变动,你仍将需要更新全部的2亿行,才能获得这些变化。而在SQL Server 2014中,增量统计信息允许你只更新那些已更改的行,并与已经存在的行合并。这可以为某些配置的查询性能带来很大的改善。

10

  在线操作的锁优先级

  现在,你可以为在线重新索引指定一个锁优先。在SQL Server的早期版本中,长时间运行的查询可能会阻止重新索引操作,当你进行重新索引操作,只能坐等维护窗口,什么都做不了。在SQL Server 2014中,你可以指定你重新索引操作将如何处理被锁定。你可以指定将等待多长时间,等待结束的时候做什么。你将遵循传统的行为,并无限期地等待?你将终止它,并移动到下一个表?或者将你杀死锁定的查询,让你可以完成重新索引?你都可以自由选择。

11

相关文章

关键词:SQL Server,微软,内存OLTP,Azure

责任编辑:周钜翔

网警备案