Sql server 2016有哪些值得关注的新特性?

自从微软在2015年5月第一周举行的“微软Ignite大会”上宣布推出SQL Server 2016后,关于SQL Server 2016的话题就备受关注和热议。以下是我们认为最值得关注的10特性,特意为读者整理。

始终加密技术(始终加密)

始终加密技术支持SQL Server中的数据加密,只有调用SQL Server的应用程序才能访问加密的数据。此功能允许客户端应用程序所有者控制机密数据并指定谁有权访问。SQL Server 2016通过验证加密密钥来控制客户端应用程序。加密密钥永远不会传递给SQL Server。通过使用此功能,您可以防止数据库或操作系统管理员接触客户应用程序的敏感数据(包括静态数据和动态数据)。该功能现在支持将敏感数据存储在云管理数据库中,并永久保持加密状态。连云提供商都看不到数据,晚上可以睡个好觉。

动态数据屏蔽

如果你对保护数据感兴趣,希望有些人能看到加密的数据,而有些人只能看到乱码的加密数据,那么你肯定会对动态数据屏蔽感兴趣。使用动态数据屏蔽功能,可以混淆SQL Server数据库表中要加密的数据列,那些未经授权的用户看不到这部分数据。使用动态数据屏蔽功能,您还可以定义数据混淆的方式。例如,如果您收到存储在表中的信用卡号,但您只想查看卡号的后四位数字。利用动态数据屏蔽功能定义屏蔽规则,可以限制非授权用户只能看到信用卡卡号的后四位,而授权用户可以看到完整的信用卡信息。

JSON支持

JSON是Java脚本对象符号(轻量级数据交换格式)。在SQL Server 2016中,您现在可以以JSON格式与SQL Server数据库引擎进行交互。微软在SQL Server中增加了对JSON的支持,可以解析JSON格式的数据,然后以关系格式存储。另外,在JSON的支持下,可以将关系数据转换成JSON格式的数据。微软还增加了一些功能,对存储在SQL Server中的JSON数据执行查询。有了这些增强对JSON操作支持的内置函数,应用程序使用JSON数据与SQL Server进行交互就变得更加容易了。

多个TempDB数据库文件

如果您正在运行多核计算机,最佳做法是运行多个tempdb数据文件。在SQL Server 2014之前,您总是必须在安装SQL Server后手动添加tempdb数据文件。在SQL Server 2016中,您现在可以在安装SQL Server时直接配置所需的tempdb文件的数量。这样,在安装完成后,您不再需要手动添加tempdb文件。

聚合碱

PolyBase支持查询分布式数据集。通过PolyBase,可以使用Transact SQL语句查询Hadoop或SQL Azure blob存储。现在可以使用PolyBase编写临时查询,实现SQL Server关系数据与存储在Hadoop或SQL Azure blog中的半结构化数据的关联查询。此外,还可以使用SQL Server的动态列存储索引来优化对半结构化数据的查询。如果一个组织跨多个分散的位置传输数据,PolyBase将成为一个通过使用SQL Server技术访问这些位置的半结构化数据的便利解决方案。

查询存储

如果您经常使用执行计划,您会喜欢新的查询存储功能。2016之前,可以使用动态管理尝试(DMV)查看现有的执行计划。但是,DMV仅支持您查看计划缓存中当前活动的计划。如果离开计划缓存,您将看不到计划的历史记录。使用查询存储功能,SQL现在可以保存历史执行计划。不仅如此,该功能还可以保存那些历史计划的查询统计。这是一个很好的补充功能,可以用来跟踪一段时间内执行计划的性能。

行级安全性

SQL数据库引擎具有行级安全功能后,可以根据SQL Server的登录权限限制对行数据的访问。通过内联表值函数过滤谓词定义来限制行。安全策略将确保过滤器谓词得到每个“选择”或“删除”操作的执行。在数据库级实现行级安全性意味着应用程序开发人员不再需要维护代码来限制某些登录或允许某些登录访问所有数据。使用这个函数,当用户查询具有行级安全设置的表时,他们甚至不知道他们查询的数据是筛选数据的一部分。

SQL SERVER支持r语言。

微软收购Revolution Analytics后,现在可以使用R语言在SQL Server上做大数据的高级分析功能。SQL Server支持R语言处理后,数据科学家可以直接使用现有的R代码,在SQL Server数据库引擎上运行。这样我们就不用为了执行R语言而导出SQL Server数据进行处理了。这个函数带来了R语言对数据的处理。

(注:耶鲁大学的子公司Revolution Analytics成立于2007年,是一家基于开源项目R语言的计算机软件和服务提供商。该公司去年被微软收购。)

伸展数据库

伸展数据库功能提供了一种将本地数据库扩展到Azure SQL数据库的方法。使用伸展数据库功能,最频繁访问的数据将存储在内部数据库中,而较少访问的数据将离线存储在Azure SQL数据库中。当你将数据库设置为“拉伸”时,那些过时的数据将会被迁移到后台的Azure SQL数据库中。如果你需要运行查询来同时访问拉伸数据库中的活动数据和历史信息,数据库引擎会无缝连接内部数据库和Azure SQL数据库,查询会返回你想要的结果,就像在同一个数据源中一样。该功能使DBA可以更容易地归档历史信息,并将其转移到更便宜的存储介质上,而无需修改当前的实际应用程序代码。这样,您可以将常用的内部数据库查询保持在最佳性能状态。

时态表

历史表保留基表中数据的旧版本信息。使用历史表功能,每当基表中有行更新时,SQL Server将自动管理旧数据版本并将其迁移到历史表中。历史表是物理上独立于基表的另一个表,但它与基表相关。如果您已经构建或计划构建自己的方法来管理行数据版本,您应该首先查看SQL Server 2016中提供的新的历史表函数,然后决定是否需要构建自己的解决方案。

摘要

SQL Server 2016有许多新功能。有些功能是对现有功能的增强,而有些则是全新的。在本文中,我们只介绍了这些新功能的一小部分。如果你亲身体验过SQL Server 2016,你会真正理解那些新特性给你的SQL Server带来的价值。