SQL Server 2016测评

SQL Server 2016带来了扩展数据库到Azure、Hadoop查询、内置的R分析、更好的安全性和更高的性能。

微软公司将SQL Server 2016称为SQL Server数据库27年发展演变史上“最大的飞跃”。正如我们将看到的,尽管围绕着SQL Server 2016数据库存在着过度的炒作,但其也的确为广大的企业组织机构提供了许多相当吸引人的新功能,包括内置的R分析、外部的Hadoop查询、Azure数据存储以及强大的管理和数据安全功能。

此外,SQL Server 2016提高了内存联机事务处理(OLTP)引擎、内存列存储(columnstore)、以及在SQL Server 2014中所推出的Azure云集成。其还为现有的SQL Server安装提供了一个合理的阶梯式升级。但所有上述的这些改进,以及微软对于目前Oracle的数据库用户所提供的免费的数据库许可证授权是否足以吸引这些用户迁移到SQL Server,则完全是另外一个问题。

在我开始详细介绍其新的和改进的功能之前,我应该介绍一下能够让您自己入手亲历亲为的部署SQL Server 2016的一些好的方法:下载并安装一款免费的开发人员或评估副本,或启动一款预配置的Azure虚拟机,并尝试各种不同的TechNet虚拟实验室。

安装和升级

在本地安装SQL Server 2016需要进行一些规划,连同适当地更新Windows 8、Windows 10或Windows Server 2012。即使是一款完全的当前版本的Windows 10,也需要在SQL Server 2016的安装之前进行一个Visual Studio运行时更新安装,而如果您想要使用 PolyBase(在Hadoop或Azure Blob存储中运行数据查询),您必须同时安装Oracle的Java 7或更高版本。而一款Linux版本的SQL Server 2016已经公布,且红帽和Canonical公司都已经承诺支持,Linux版本仍然还处于私下预览。

SQL Server 2016的安装设置与以前版本的安装是非常类似的。其有一些额外的配置步骤和选项——例如,设置微软R和PolyBase查询服务,这是新的功能特点。

SQL Server 2016的主要客户将是那些已经运行了SQL Server 2014,并想要升级他们的生产数据库,以便能够充分利用新的功能以及改进的性能,安全性,可扩展性等等的企业组织机构。如果您所在的企业组织便是这类客户的其中之一,那么,我们建议您可以分阶段的安装SQL Server 2016,从一个大概的测试或开发初步的数据库开始。微软的建议是从数据库兼容级别不变开始,然后将其兼容级别提高到130,并测试您的生产查询。如果您需要修复回归(Regression),您可以在您这样做时暂时降低兼容级别;而当您无需回归,并可以在130的兼容级别运行时,您应该可以看到改进的查询优化,并行查询计划,更积极的自动统计更新,和其他方面的性能提升。

性能的改进

微软公司为SQL Server 2016的性能提升进行了重大声明。在一个较高的水平,该公司宣称其两款拥有44个内核的TPC-E(OLTP)价格/性能获得了相当高的评分,一款具有富士通服务器,另一款带有联想服务器。此外,他们声称其拥有30TB和1TB数据库规模大小的TPC-H(分析)在性能和价格/性能方面获得相当高的评分。

而标准化的TPC基准是随着“标杆营销(Bench Marketing)”的一项改进,其在被正式推出之前,已经被数据库业界广泛应用,但仍然受到供应商们博奕的牵制。TPC-E在其指定的“pseudo-SQL”中,而不是明确的SQL语句是相当离奇的,并且从各种不同版本的Microsoft SQL Server获得唯一的列出结果。

TPC-H展示了更多种类的供应商;而从实际的TPC-H列表的观察中,我所不理解的是微软如何能够声称其在30TB和1TB的类别所获得的成功,当SQL Server 2016已经完全被群集的EXACluster OS 5.0在这两种情况下所扰乱。也许微软意在限制其对于非聚合(nonclustered)结果的声称,但却忘了说了。

所以,让我印象平平的是对于TPC结果的引用。微软为SQL Server 2016较之SQL Server 2014在特定的情况下的使用做出了额外的加速声明;这其中的一些都是很专业的,如“19倍更快的空间原生功能,”而其他的声明则更一般,如“Tableau工具190%更快的查询。”无论SQL Server 2016是否能够在Tableau查询方面超越亚马逊Aurora,都不是微软目前所自愿回答的问题。

对于SQL Server 2014的客户而言,重要的性能问题是在于探索他们自己的数据库负载是否能够在SQL Server 2016上运行得更快或更好的实现规模化。微软的测量和基准可能是富于暗示的,但他们最终与您企业自己的数据库如何执行则不太相关。

另一个潜在的提升性能和改进可扩展性的领域是增加内存(12TB)及SQL Server 2016可用的运行在Windows Server 2016上的内核的数量。这对于内存OLTP和内存中的运行分析肯定是相当重要的,但其同时也需要更大的服务器开销:将需要更多的内存、更多的内核和SQL Server 2016许可证包。

除了最大化的增加内存,自从该公司推出其SQL Server 2014以来,内存OLTP就已经获得了改进。微软表示,其拥有一个重写引擎,无阻塞的并发控制(nonblocking concurrency control),为本地代码编写T-SQL。微软声称,他们为磁盘上的联机事务处理带来了高达30倍的性能提高。

在SQL Server 2014中推出的内存OLTP,已经通过一个新的引擎得到了加强,并能够为本地代码编译T-SQL。

时态表和查询存储

大多数数据库都有两个数据存储:数据库和事务日志。使用事务日志将数据库回溯到历史上的某个点是一个考验耐心的尝试。

SQL Server 2016推出了在数据库中的暂存历史。其能够自动跟踪数据变化的历史,并使得历史数据状态能够方便地查询。基本上,这通过为旧的数据增加了历史表格,实现了一款ANSI 2011设施的部署,一个时间段的数据表格,和为系统时间条款选择statement操作的语法。

查询存储保持对查询文本的跟踪(加上所有相关的属性),存储所有的方案选择及性能指标,并交叉进行重启、升级和重新编译。一个查询存储允许您能够轻松地查询性能,比较查询计划,并根据过去的性能来强制实施计划选择。

安全性的改进

数据安全比以往任何时候都更为重要。我甚至无需提到HIPAA和PCI-DSS规定和相关的罚款。毕竟,去年美国人事管理办公室的政府雇员个人数据信息泄露事件和知名的婚外情网站AshleyMadison被黑客攻击并导致资料外泄事件已经广为人知了。

在SQL Server 2016中的最大的安全方面的改进被称为始终加密。这是相当聪明的措施:数据库中的敏感数据在列级加密,而未加密的数据在信任边界之外是永远看不到的。

上图勾勒出了由SQL Server 2016为“始终处于加密状态”的数据提供安全保障的一种方式。请注意,个人身份SSN从不发送到信任边界之外。

SQL Server 2016有两种加密实现方式:随机的和确定的。随机形 式更为安全,但确定形式的加密允许在位置、区别和群组条款和联接进行同等比较。随机和确定这两种加密方式都允许透明检索。

SQL Server 2016的另一大重要的安全功能是动态数据屏蔽。这在查询时通过将他们与非特权用户进行混淆,来保护敏感列。假设,员工的社会安全号码表格已经被屏蔽:

ALTER TABLE [Employee] ALTER COLUMN [SocialSecurityNumber]ADD MASKED WITH (FUNCTION = ‘SSN()’)

那么,任何没有被授予访问特权的用户都将只能从查询返回的社会安全号码中看到一部分,例如:123-45-6789将以XXX-XX-XX89返回。

动态数据屏蔽适用于列。而在某些情况下,对于行级安全(RLS)又有一个额外的需要,例如对于医务人员如何对患者进行治疗数据的限制,或者在一个多租户数据库,当前租客对于属于自己的记录的行的可视化的限制。RLS是通过使用过滤断定,调用内联表值函数部署实现的。内联函数被进行了优化,使他们有与之相媲美的性能。

运营分析

传统上,OLTP数据库服务器和分析数据库服务器是单独分开的,而一款ETL进程则周期性的从OLTP服务器提取新数据以便在分析服务器上更新OLAP cubes。这是相当昂贵的;其也推出了数据延迟,有太多的移动部件以带来高可靠性。

在SQL Server 2016中的新的实时运营分析模式使用现场非聚集列存储索引,直接从OLTP数据库更新。最近的“尾”巴行进入到一个内存OLTP表,以便他们可以无需开销任何列存储索引费用而被查询。一个后台进程任务从尾部在100万行块迁移行到列存储。微软建议将列存储分析与群组可用性相结合,以实现最好的性能分析和规模化缩放。

内置R服务

R编程语言连同Python是数据科学家们的最爱。当运行R程序时所遇到的一个主要问题是,大型数据集的回归需要把数据带给R服务器或工作站。通常情况下,数据科学家们会通过将一个小的随机样本数据拉到R服务器以进行开发和测试,来绕过这个问题,而他们只运行了R脚本,而不是运行完整的数据作为最后一步。

在SQL Server 2016中,高性能并行R服务内置到数据库中,可以与T-SQL结构相互作用,基本上是把分析带给数据,而不是将数据带给分析。这不仅快得多,而且也更具可扩展性和更少的内存密集型。其有足够的快,使得数据科学家们可以在数据库中开发和测试他们的R脚本。微软还提供了一个独立的R服务器。

混合云与大数据

微软喜欢谈论“超大规模”的功能特点在Azure云中与SQL Server 2016的结合。这些功能特点中最棒的是数据库的扩展。基本上,您企业可以在内部部署的数据库实例和一款Azure SQL数据库之间通过开启“远程数据存档”功能以创建一个链接,在SQL Server为您提供Azure管理员凭据,并且改变您想要的远程数据归档的数据库的名字。

然后,为了控制迁移,您可以选择定义一款功能或一组功能来定义数据中的哪一部分将被扩展(例如,在一个订单表中完成的订单)。最后,您可以为想要扩展的表打开远程数据归档迁移状态。

其他超大规模的功能包括高可用性,数据库副本,以及增强备份到Azure上。您也可以将企业内部部署的SQL Server实例完全自动的迁移到SQL Azure上。

PolyBase是微软在在SQL Server 2016中对于一款统一视图的关系数据和HDFS (Hadoop)中的半结构化的数据或Azure的Blob存储的术语。PolyBase集群通过头节点和多个计算节点以大致相同的方式向外扩展,Hadoop集群通过一个名称节点和多个数据节点向外扩展。 PolyBase目前支持的Cloudera、Hortonworks数据平台和HDInsight。

如果您企业需要庞大的规模,您可以在云中或企业内部部署环境配置一款Azure SQL数据仓库或Azure数据湖,在企业内部部署环境安装一款微软分析平台系统设备。事实上,您可以把所有的这一切变成一个混合的解决方案。微软声称,该系统将能够扩展到多个数据字节,所您所在的公司是否需要任何的SQL Server 2016的新功能呢?如果您的企业正在运行SQL Server的旧版本,也很容易通过建立一个测试实例来测试兼容性和其所能带来的实实在在的好处,无论是在本地还是在Azure云中,通过您企业的数据库加载,并测试您的应用程序。在已经经历过这一切后,您要么知道不值得升级,要么知道您企业有一个很好的理由进行升级了。

与此同时,如果您企业正在运行Oracle的数据库,微软公司也愿意给您企业SQL Server 2016的许可证,以方便您企业的迁移,并为您提供对于该公司迁移工具的访问权限。在我最后一次查看该进程过程时,微软已经实现了大约90%的Oracle到SQL Server迁移的自动化,还提供了很好的手动步骤文档介绍。然而,这仍然是一项艰巨的任务,尤其是如果您企业的应用程序大量使用了甲骨文的特定功能的话。然而,如果Oracle到SQL Server的迁移已经是您企业的路线发展规划的一部分,那么这将可能是一个来进行过渡的很好的时间。

====================================分割线================================

本文转自d1net(转载)

时间: 2024-10-25 07:08:14

SQL Server 2016测评的相关文章

SQL Server 2016 列存储技术做实时分析

title: SQL Server 2016 列存储技术做实时分析 author: 风移 摘要 数据分析指导商业行为的价值越来越高,使得用户对数据实时分析的要求变得越来越高.使用传统RDBMS数据分析架构,遇到了前所未有的挑战,高延迟.数据处理流程复杂和成本过高.这篇文章讨论如何利用SQL Server 2016列存储技术做实时数据分析,解决传统分析方法的痛点. 传统RDBMS数据分析 在过去很长一段时间,企业均选择传统的关系型数据库做OLAP和Data Warehouse工作.这一节讨论传统R

SQL Server 2016 Alwayson新增功能图文详解

概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alwyson上做了哪些改进,记得之前我在写2014Alwayson的时候提到过几个需要改进的问题在2016上已经做了改进. 一.自动故障转移副本数量 在2016之前的版本自动故障转移副本最多只能配置2个副本,在2016上变成了3个. 说明:自动故障转移增加到三个副本影响并不是很大不是非常的重要,多增加一个故障转移副本也意味着你的作业也需要多维护一个副本.重要程度(一般).

阿里云数据库推出SQL Server 2016 单机基础版本

   即日起至2017年10月31日,购买1年以内任意时长的包年包月订单,第1个月0折,包年更有75折优惠,详情请看.     在推出SQL Server 2012后,阿里云推出2016版本,目前支持单机版.       在数据库管理领域中,有几大重要的核心问题需要去解决:       1. 数据库服务器资源管理:如何能够快速标准化部署数据库实例,数据库文件统一目录管理,规范化运维可减少大量错误发生.同时根据业务需要快速伸缩数据库硬件资源,是所有DBA追求的目标,因为业务发展一般无法容忍长时间等

MSSQL-应用案例-SQL Server 2016基于内存优化表的列存储索引分析Web Access Log

问题引入 在日常的网站运维工作中,我们需要对网站客户端访问情况做统计.汇总.分析和报表展示,以数据来全面掌控网站运营和访问情况.当不可预知的意外情况发生时,我们可以快速发现问题以及采取相应的措施.比如:当网站受到黑客攻击时的流量陡增,又或者是网站某个资源发生意外抛异常等情况. 在提供Web服务的服务器上,比如IIS.Apache都存在访问日志记录,这篇是文章是以SQL Server 2016基于内存优化表的列存储索引来分析Apache Web Access Log为例,讲解分析网站访问情况,因此

Sql Server 2016新功能之Row-Level Security(值得关注)_MsSql

Sql Server 2016 有一个新功能叫 Row-Level Security ,大概意思是行版本的安全策略(原来我是个英语渣_(:з」∠)_) 直接上例子.这个功能相当通过对表添加一个函数作为过滤规则,使得拥有不同条件的用户(或者登录名) 之类的,只能获取到符合条件的数据.相对来说是提供了那么一点的便捷性,当然也增加了数据的安全性,相当于每个用户连接进来只能看到 符合规则的数据(当然,这里的用户只是一个举例.其实是可以通过编写过滤函数来实现的) 举个例子 有三个用户 Sales1 ,Sa

在ECS Windows Server 2012 R2上面安装单机版SQL Server 2016

  安装SQL Server 2016的硬件以及软件要求 Component Requirement .NET Framework SQL Server 2016 RC1 and later require .NET Framework 4.6 for the Database Engine, Master Data Services, or Replication. SQL Server 2016 setup automatically installs .NET Framework. You

SQL Server 2016正式版安装配置过程图文详解_MsSql

本文针对SQL 2016 正式版安装过程进行梳理总结,帮助大家顺利安装SQL 2016,具体内容如下 1.点击全新安装 2.接着就是下一步,下一步... 3.选择你要安装的功能 [可以利用PolyBase,使用标准TSQL查询hadoop数据,但这里我不需要装] 4.设置排序规则 5.设置登录用户 6.临时数据库配置[SQL Server 2016:可以根据逻辑CPU数量来调整tempdb的数据文件数量] 7.数据库安装完成后,点击安装管理工具 8.管理工具要从官网去下载[https://msd

SQL Server 2016 查询存储性能优化小结_MsSql

作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在一切已经改变,SQL Server开始糟糕, 疯狂的事情不能解释.在这个情况下我介入,分析下整个SQL Server的安装,最后用一些神奇的调查方法找出性能问题的根源. 但很多时候问题的根源是一样的:所谓的计划回归(Plan Regression),即特定查询的执行计划已经改变.昨天SQL Serv

SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)

原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一个新特性,Temporal Table(历史表)记录了表历史上任何时间点所有的数据改动.Temporal Table其实早在ANSI SQL 2011就提出了,而SAP HANA, DB2和Oracle早已在它们的产品中加入/实现了这一特性.所以说微软其实是落后了几个竞争对手.既然在CTP3.0中加入了,相信