SQL Server 2016中的新功能(数据库引擎)
2017年1月13日 23分钟阅读时长 作者
本主题适用于: SQL Server(从2016开始) Azure SQL数据库 Azure SQL数据仓库 并行数据仓库
本主题总结了SQL Server数据库引擎的SQL Server 2017版本中引入的增强功能。 新功能和增强功能增强了设计,开发和维护数据存储系统的架构师,开发人员和管理员的功能和生产力。
要查看其他SQL Server组件中的新功能 ,请参阅SQL Server 2016中的新增功能 。
注意
SQL Server 2016是一个64位应用程序。 尽管有些元素作为32位组件运行,但32位安装已停止。
试试看
有关当前的发行说明,请参阅SQL Server 2016发行说明 。
SQL Server 2016 Service Pack 1(SP1)
CREATE OR ALTER <object>
语法现在可用于过程 , 视图 , 函数和触发器 。- 添加了一个更通用的查询提示模型的支持:
OPTION (USE HINT(‘<hint1>‘, ‘<hint2>‘))
。 有关更多信息,请参阅查询提示(Transact-SQL) 。 - sys.dm_exec_valid_use_hints DMV被添加到列表提示。
- 添加sys.dm_exec_query_statistics_xml DMV以返回showplan XML transient statistics。
- sys.dm_db_incremental_stats_properties DMV被添加到指定表的增量统计信息中。
- 将
instant_file_initialization_enabled
列添加到sys.dm_server_services 。 - 将
estimated_read_row_count
列添加到sys.dm_exec_query_profiles中 。 - 将
sql_memory_model
和sql_memory_model_desc
列添加到sys.dm_os_sys_info中,以提供有关内存页锁定模型的信息。 - 支持一些功能的版本已经扩展。 这包括向所有版本添加行级安全性,始终加密,动态数据屏蔽,数据库审核,内存中OLTP和其他一些功能。有关详细信息,请参阅SQL Server 2016的版本和支持的功能 。
- 当重新定义使用Always On加密的对象时, sp_refresh_parameter_encryption允许Always On加密来更新元数据。
SQL Server 2016 RTM
本节包含以下小节:
- Columnstore索引
- 数据库作用域配置
- 内存中OLTP
- 查询优化器
- 实时查询统计
- 查询商店
- 时间表
- 条纹备份到Microsoft Azure Blob存储
- 文件快照备份到Microsoft Azure Blob存储
- 托管备份
- TempDB数据库
- 内置JSON支持
- 多碱
- 拉伸数据库
- 支持UTF-8
- 新的默认数据库大小和自动增长值
- Transact-SQL增强
- 系统视图增强功能
- 安全性增强
- 高可用性增强功能
- 复制增强功能
- 工具增强功能
Columnstore索引
此版本提供了对列存储索引的改进,包括可更新的非聚集列存储索引,内存中表中的列存储索引以及更多用于操作分析的新功能。
- 只读非聚簇的列存储库索引在升级后可更新。 不需要重建索引,使其可更新。
- 对列存储器索引的分析查询性能进行了改进,特别是对于聚合和字符串谓词。
- DMV和XEvents具有可支持性的改进。
有关更多详细信息,请参阅联机丛书的“列存储索引”指南部分中的这些主题:
- Columnstore索引版本功能摘要 - 包括新功能。
- Columnstore索引数据加载
- Columnstore索引查询性能
- 开始使用Columnstore进行实时操作分析
- 数据仓库的Columnstore索引
- Columnstore索引碎片整理
数据库作用域配置
新的ALTER DATABASE SCOPED CONFIGURATION(Transact-SQL)语句可以控制特定数据库的某些配置。 配置设置影响应用程序行为。
新的语句可用于SQL Server 2016和SQL数据库。
内存中OLTP
存储格式更改
内存优化表的存储格式在SQL Server 2014和2016之间更改。要从SQL Server 2014进行升级和附加/还原,新的存储格式将被序列化,数据库在数据库恢复期间重新启动一次。
ALTER TABLE是日志优化的,并行运行
现在当您在内存优化的表上执行ALTER TABLE语句时,只会将元数据更改写入日志。 这大大减少了日志IO。 此外,大多数ALTER TABLE方案现在并行运行,这可以大大缩短语句的持续时间。
- 对于非并行异常(包括LOB),请参阅更改内存优化表 。
统计
内存优化表的统计信息现在会自动更新。 此外,抽样现在是收集统计数据的支持方法,允许您避免更昂贵的全扫描方法。
并行和堆扫描内存优化的表
内存优化表和内存优化表上的索引现在支持并行扫描。 这提高了分析查询的性能。
此外,还支持堆扫描,可以并行执行。 在内存优化表的情况下,堆扫描是指使用用于存储行的内存堆数据结构扫描表中的所有行。 对于全表扫描,堆扫描比使用索引更有效。
内存优化表的Transact-SQL改进
SQL Server 2014中的内存优化表不支持多个Transact-SQL元素,SQL Server 2016中现在支持这些元素:
- 支持UNIQUE约束和索引。
- 支持内存优化表之间的FOREIGN KEY引用。
- 这些外键只能引用主键,不能引用唯一键。
- 支持CHECK约束。
- 非唯一索引可以在其键中允许NULL值。
- 内存优化表支持TRIGGER。
- 只支持AFTER触发器。 不支持INSTEADOF触发器。
- 内存优化表上的任何触发器必须使用WITH NATIVE_COMPILATION。
- 完全支持所有SQL Server代码页和与内存优化表和本地编译的T-SQL模块中的索引和其他工件的归类。
- 支持更改内存优化表 :
- ADD和DROP索引。 更改bucket_count的哈希索引。
- 进行模式更改:ad??d / drop / alter columns; 添加/删除约束。
- 内存优化表现在可以具有多个列,其组合长度大于8060字节页面的长度。 一个例子是一个具有
nvarchar(4000)
类型的三列的表。 在这样的示例中,一些列现在存储在行外。 您的查询完全不知道列是在行还是离线。 - 内存优化表中现在支持LOB(大对象)类型
varbinary(max)
,nvarchar(max)
和varchar(max)
。
有关整体信息,请参阅:
用于本机编译的模块的Transact-SQL改进
SQL Server 2014中的本机编译模块不支持某些Transact-SQL元素,现在SQL Server 2016中支持这些元素:
- 查询结构:
- UNION和UNION ALL
- SELECT DISTINCT
- 外加
- SELECT中的子查询
- INSERT,UPDATE和DELETE语句现在可以包含OUTPUT子句 。
- 现在,LOB可以在本地proc中以下列方式使用:
- 变量声明
- 输入参数。
- 参数传入字符串函数,如本地进程中的LTrim或Substring。
- 现在可以本地编译内联(意思是单个语句)表值函数(TVFs)。
- 标量用户定义函数(UDF)现在可以被本地编译。
- 增加对本机proc的支持:
- EXECUTE AS CALLER现在支持,这意味着在创建本机编译的T-SQL模块时,不再需要EXECUTE AS子句。
有关整体信息,请参阅:
性能和缩放改进
- 数据大小不再有任何限制。 请参见内存优化表的估计内存要求 。
- 现在有多个并发线程负责将内存优化表的更改持续到磁盘 。
- 使用解释的Transact-SQL访问内存优化表的并行计划支持。
SQL Server Management Studio中的增强功能
- 确定表或存储过程是否应移植到内存中OLTP不再需要数据收集器或管理数据仓库的配置。 该报告现在可以直接在生产数据库上运行。
- PowerShell Cmdlet for Migration评估用于评估SQL Server数据库中多个对象的迁移适应性。
- 通过右键单击数据库并选择“任务”>“生成内存OLTP迁移清单”来生成迁移检查列表。
跨功能支持
- 支持使用内存OLTP进行临时系统版本控制。 有关详细信息,请参阅具有内存优化表的系统版本的时间表
- 查询存储支持In-Memory OLTP工作负载的本机编译代码。 有关详细信息,请参阅将查询存储与内存中OLTP一起使用 。
- 内存优化表中的行级安全性
- 使用多个活动结果集(MARS)连接现在可以访问内存优化的表和本地编译的存储过程。
- 透明数据加密(TDE)支持。 如果将数据库配置为ENCRYPTION,则内存优化文件组中的文件现在也将被加密。
有关更多信息,请参阅内存中OLTP(内存优化) 。
查询优化器
兼容级保证
将数据库升级到SQL Server 2016时,如果您仍然处于使用的较旧兼容性级别(例如120或110),则不会看到计划更改。 与查询优化器相关的新功能和改进仅在最新兼容性级别下可用。
跟踪标志4199
通常,您不需要在SQL Server 2016中使用跟踪标志4199,因为大多数由此跟踪标志控制的查询优化器行为在SQL Server 2016的最新兼容级别(130)下无条件启用。
新引用完整性运算符
一个表最多可以引用253个其他表和列作为外键(外引参考)。 SQL Server 2016增加了可以引用单个表(引用引用)中的列的其他表和列的数量的限制,从253到10,000。 有关限制,请参阅创建外键关系 。 引入了新的参照完整性算子(在兼容性级别130下),其执行参考完整性检查。 这可以提高UPDATE和DELETE操作的整体性能,对于具有大量入站引用的表,从而使得可以有大量的引用引用。 有关更多信息,请参阅SQL Server 2016中的查询优化程序添加
抽样统计的并行更新
数据抽样构建统计数据现在是并行完成(在兼容级别130下),以提高统计数据收集的性能。 有关详细信息,请参阅更新统计信息
统计更新的亚线阈值
统计数据的自动更新现在对大型表格(在兼容级别130)下更具侵略性。 触发自动更新统计信息的阈值是20%,从SQL Server 2016开始,对于较大的表,该阈值将随着表中行数的增加而开始下降(仍然是百分比)。 您将不再需要设置跟踪标志2371来降低阈值。
其他增强功能
Insert-select语句中的插入是多线程的,或者可以具有并行计划(在兼容级别130下)。 要获得并行计划,INSERT ... SELECT语句必须使用TABLOCK提示。 有关详细信息,请参阅并行插入选择
实时查询统计
Management Studio提供查看活动查询的实时执行计划的功能。 该实时查询计划提供了对查询执行过程的实时洞察,因为控件从一个查询计划运算符流向另一个查询计划运算符。 有关详细信息,请参阅实时查询统计信息
查询商店
查询存储是一种新功能,可以为DBA提供有关查询计划选择和性能的洞察。 通过使您能够快速查找由查询计划中的更改引起的性能差异,从而简化了性能故障排除。 该功能会自动捕获查询,计划和运行时统计信息的历史记录,并保留这些记录供您查看。 它按照时间窗口分隔数据,允许您查看数据库使用模式,并了解查询计划更改发生在服务器上的时间。 查询存储库通过使用Management Studio对话框提供信息,并允许您强制查询到所选查询计划之一。 有关详细信息,请参阅使用查询存储监视性能 。
时间表
SQL Server 2016现在支持系统版本的时间表。 时间表是一种新类型的表,可在任何时间点提供关于存储事实的正确信息。 每个时间表实际上由两个表组成,一个用于当前数据,一个用于历史数据。 系统确保当数据与当前数据更改时,以前的值存储在历史表中。 提供查询结构以隐藏用户的复杂性。 有关更多信息,请参阅时间表 。
条纹备份到Microsoft Azure Blob存储
在SQL Server 2016中,使用Microsoft Azure Blob存储服务将SQL Server备份到URL现在支持使用块blob进行条带化备份集,以支持12.8 TB的最大备份大小。 例如,参见代码示例 。
文件快照备份到Microsoft Azure Blob存储
在SQL Server 2016中,SQL Server备份到URL现在支持使用Azure快照来备份使用Microsoft Azure Blob存储服务存储所有数据库文件的数据库。 有关更多信息,请参阅Azure中的数据库文件的文件快照备份 。
托管备份
在SQL Server 2016中,SQL Server管理备份到Microsoft Azure使用新的块blob存储来备份文件。 受管备份还有一些变化和增强。
- 支持自动和自定义的备份调度。
- 支持系统数据库的备份。
- 支持使用简单恢复模式的数据库。
有关更多信息,请参阅SQL Server托管备份到Microsoft Azure
注意
对于SQL Server 2016,这些新的托管备份功能在SQL Server Management Studio中尚未具有相应的UI支持。
TempDB数据库
TempDB有几项增强功能:
- tempdb不再需要跟踪标志1117和1118。 如果有多个tempdb数据库文件,所有文件将根据增长设置同时增长。 另外,tempdb中的所有分配都将使用统一的区域。
- 默认情况下,安装程序会添加与CPU计数相同数量的tempdb文件,或者增加8位(以较低者为准)。
- 在安装过程中,您可以使用SQL Server安装向导的数据库引擎配置 - TempDB部分中的新UI输入控件配置tempdb数据库文件的数量,初始大小,自动增长和目录布局。
- 默认的初始大小为8MB,默认的自动增长为64MB。
- 您可以为tempdb数据库文件指定多个卷。 如果指定了多个目录,则tempdb数据文件将以循环方式传播到目录中。
内置JSON支持
SQL Server 2016为导入和导出JSON以及使用JSON字符串添加内置支持。 这个内置的支持包括以下语句和功能。
- 通过将FOR JSON子句添加到SELECT语句,将查询结果格式化为JSON或导出JSON。 例如,使用FOR JSON子句将客户端应用程序的JSON输出格式委托给SQL Server。 有关更多信息,请参阅使用FOR JSON(SQL Server)将查询结果格式化为JSON 。
- 通过调用OPENJSON行集提供程序函数将JSON数据转换为行和列,或导入JSON。 使用OPENJSON将JSON数据导入SQL Server,或将JSON数据转换为目前无法直接使用JSON的应用程序或服务的行和列。 有关更多信息,请参阅使用OPENJSON(SQL Server)将JSON数据转换为行和列 。
- ISJSON函数测试字符串是否包含有效的JSON。 有关更多信息,请参阅ISJSON(Transact-SQL)
- JSON_VALUE函数从JSON 字符串中提取标量值。有关详细信息,请参阅JSON_VALUE(Transact-SQL) 。
- JSON_QUERY函数从JSON字符串中提取对象或数组。 有关更多信息,请参阅JSON_QUERY(Transact-SQL) 。
- JSON_MODIFY函数更新JSON字符串中的属性值,并返回更新的JSON字符串。 有关更多信息,请参阅JSON_MODIFY(Transact-SQL) 。
多碱
PolyBase允许您使用T-SQL语句访问存储在Hadoop或Azure Blob Storage中的数据,并以自定义方式进行查询。 它还允许您查询半结构化数据,并将结果与??存储在SQL Server中的关系数据集相加。 PolyBase针对数据仓库工作负载进行了优化,旨在用于分析查询方案。
有关更多信息,请参阅PolyBase Guide 。
拉伸数据库
Stretch数据库是SQL Server 2016中的一项新功能,可将您的历史数据透明而安全地迁移到Microsoft Azure云端。 无论是内部还是扩展到云,您都可以无缝地访问SQL Server数据。 您设置确定数据存储位置的策略,SQL Server将在后台处理数据移动。 整个表格总是在线和可查询的。 而且,Stretch数据库不需要对现有查询或应用程序进行任何更改 - 数据的位置对于应用程序是完全透明的。 有关更多信息,请参阅弹力数据库 。
支持UTF-8
bcp实用程序 , BULK INSERT和OPENROWSET现在支持UTF-8代码页。 有关详细信息,请参阅这些主题和创建格式文件(SQL Server) 。
新的默认数据库大小和自动增长值
模型数据库的新值和新数据库的默认值(基于模型)。 数据和日志文件的初始大小现在是8 MB。 数据和日志文件的默认自动增长现在是64MB。
Transact-SQL增强
许多增强功能支持本主题其他部分中描述的功能。 以下附加增强功能可用。
- TRUNCATE TABLE语句现在允许截断指定的分区。 有关更多信息,请参阅TRUNCATE TABLE(Transact-SQL) 。
- ALTER TABLE(Transact-SQL)现在允许在表保持可用时执行许多alter column操作。
- 全文索引DMV sys.dm_fts_index_keywords_position_by_document(Transact-SQL)返回文档中关键字的位置。 此DMV也已添加到SQL Server 2012 SP2和SQL Server 2014 SP1。
- 一个新的查询提示NO_PERFORMANCE_SPOOL可以阻止一个线轴运算符被添加到查询计划。 当许多并发查询使用假脱机操作运行时,这可以提高性能。 有关更多信息,请参阅查询提示(Transact-SQL) 。
- FORMATMESSAGE(Transact-SQL)语句被强化以接受msg_string参数.NONCLUSTERED索引的最大索引键大小已增加到1700字节。
- 添加了与AGGREGATE,ASSEMBLY,COLUMN,CONSTRAINT,DATABASE,DEFAULT,FUNCTION,INDEX,PROCEDURE,ROLE,RULE,SCHEMA,SECURITY POLICY,SEQUENCE,SYNONYM,TABLE,TRIGGER,TYPE,USER,和VIEW。 查看语法的各个语法主题。
- DBCC CHECKTABLE(Transact-SQL) , DBCC CHECKDB(Transact-SQL)和DBCC CHECKFILEGROUP(Transact-SQL)已添加MAXDOP选项以指定并行度。
- 现在可以设置SESSION_CONTEXT。 包括SESSION_CONTEXT(Transact-SQL)函数, CURRENT_TRANSACTION_ID(Transact-SQL)函数和sp_set_session_context(Transact-SQL)过程。
- 高级分析扩展允许用户执行以支持语言(如R)编写的脚本。Transact-SQL通过引入sp_execute_external_script(Transact-SQL)存储过程以及外部脚本启用的服务器配置选项来支持R。 有关更多信息,请参阅SQL Server R服务 。
- 也支持R,创建一个外部资源池的能力。 有关更多信息,请参阅CREATE EXTERNAL RESOURCE POOL(Transact-SQL) 。 新的目录视图和DMV( sys.resource_governor_external_resource_pools(Transact-SQL)和sys.dm_resource_governor_external_resource_pool_affinity(Transact-SQL) )。 sp_execute_external_script(Transact-SQL)和CREATE WORKLOAD GROUP(Transact-SQL)可以使用其他参数。 附加的列添加到一些现有的资源调控器目录视图和DMV中。
- 使用ALLOW_ENCRYPTED_VALUE_MODIFICATIONS选项来增强CREATE USER语法,以支持始终加密的功能。 有关更多信息,请参阅迁移始终加密保护的敏感数据 。
- COMPRESS(Transact-SQL)和DECOMPRESS(Transact-SQL)函数将值转换为GZIP算法和/或从GZIP算法中转换。
- 添加DATEDIFF_BIG(Transact-SQL)和AT TIME ZONE(Transact-SQL)函数和sys.time_zone_info(Transact-SQL)视图来支持日期和时间交互。
- 现在可以在数据库级创建凭证(除先前可用的服务器级凭据外)。 有关更多信息,请参阅CREATE DATABASE SCOPED CREDENTIAL(Transact-SQL) 。
- 向SERVERPROPERTY(Transact-SQL)添加了八个新属性:InstanceDefaultDataPath,InstanceDefaultLogPath,ProductBuild,ProductBuildType,ProductMajorVersion,ProductMinorVersion,ProductUpdateLevel和ProductUpdateReference。
- 删除了HASHBYTES(Transact-SQL)函数的8,000字节的输入长度限制。
- 将添加新的字符串函数STRING_SPLIT(Transact-SQL)和STRING_ESCAPE(Transact-SQL) 。
- 自动增长选项:跟踪标志1117由ALTER DATABASE的AUTOGROW_SINGLE_FILE和AUTOGROW_ALL_FILES选项替换,跟踪标志1117不受影响。有关更多信息,请参阅ALTER DATABASE文件和文件组选项(Transact-SQL)和sys.filegroups(Transact-SQL)的新的is_autogrow_all_files列。
- 混合区域的分配:对于用户数据库,对象的前8页的默认分配将从使用混合页面区段到使用统一区域进行更改。 跟踪标志1118被替换为ALTER DATABASE的SET MIXED_PAGE_ALLOCATION选项,跟踪标志1118没有影响。 有关详细信息,请参阅ALTER DATABASE SET选项(Transact-SQL)和sys.databases(Transact-SQL)的新的
is_mixed_page_allocation_on
列。
系统视图增强功能
- 两个新视图支持行级安全性。 有关更多信息,请参阅sys.security_predicates(Transact-SQL)和sys.security_policies(Transact-SQL) 。
- 七个新视图支持查询存储功能。 有关详细信息,请参阅查询存储目录视图(Transact-SQL) 。
- sys.dm_exec_query_stats(Transact-SQL)中添加了24个新列,提供有关内存授予的信息。
- 添加两个新的查询提示(MIN_GRANT_PERCENT和MAX_GRANT_PERCENT)来指定内存授予。 请参阅查询提示(Transact-SQL) 。
- sys.dm_exec_session_wait_stats(Transact-SQL)提供类似于服务器端sys.dm_os_wait_stats(Transact-SQL)的每个会话报告。
- sys.dm_exec_function_stats(Transact-SQL)提供有关标量值函数的执行统计信息。
- 从SQL Server 2016开始, sys.dm_db_index_usage_stats(Transact-SQL)中的条目将保留为SQL Server 2008 R2之前的条目。
- 关于提交到SQL Server实例的语句的信息可以由新的动态管理函数sys.dm_exec_input_buffer(Transact-SQL)返回 。
- 两个新视图支持SQL Server R服务 : sys.dm_external_script_requests和sys.dm_external_script_execution_stats 。
安全性增强
行级安全性
行级安全性引入基于谓词的访问控制。 它具有灵活,集中的基于谓词的评估,可以考虑元数据(如标签)或管理员适当确定的任何其他条件。 该谓词用作判断用户是否根据用户属性对数据进行适当访问的标准。 基于标签的访问控制可以通过使用基于谓词的访问控制来实现。 有关更多信息,请参阅行级安全性 。
一律加密
通过始终加密,SQL Server可以对加密数据执行操作,最重要的是加密密钥与客户的信任环境中的应用程序不在服务器上。 始终加密保护客户数据,使DBA无法访问纯文本数据。 数据的加密和解密在驱动程序级别上透明地发生,最小化必须对现有应用程序进行的更改。 有关详细信息,请参阅始终加密(数据库引擎) 。
动态数据屏蔽
动态数据屏蔽通过将敏感数据曝光屏蔽到非特权用户来限制。 动态数据屏蔽有助于防止未经授权的访问敏感数据,使客户能够以最小的影响来指定要显示的敏感数据的数量。 这是一种基于策略的安全功能,可以在查询的结果集中隐藏指定数据库字段的敏感数据,而数据库中的数据不会更改。有关详细信息,请参阅动态数据屏蔽 。
新权限
- ALTER ANY SECURITY POLICY权限是执行行级安全性的一部分。
- ALTER ANY MASK和UNMASK权限作为实施动态数据屏蔽的一部分可用。
- ALTER任何列加密密钥 , 查看任何列加密密钥 , 任何列的主密钥定义 ,以及查看任何列的主密钥定义权限作为始终加密特征的实施的一部分。
- ALTER ANY EXTERNAL DATA SOURCE和ALTER ANY EXTERNAL FILE FORMAT权限在SQL Server 2016中可见,但仅适用于Google Analytics(分析)平台系统(SQL数据仓库)。
- EXECUTE ANY EXTERNAL SCRIPT权限作为R脚本支持的一部分可用。
- ALTER ANY DATABASE SCOPED CONFIGURATION权限可用于授权使用ALTER DATABASE SCOPED CONFIGURATION(Transact-SQL)语句。
透明数据加密
- 透明数据加密功能得到了加强,支持英特尔AES-NI硬件加密加密。 这将减少打开透明数据加密的CPU开销。
端点AES加密
- 端点的默认加密从RC4更改为AES。
新证书类型
- 现在可以在数据库级创建凭证(除先前可用的服务器级凭据外)。 有关更多信息,请参阅CREATE DATABASE SCOPED CREDENTIAL(Transact-SQL) 。
高可用性增强功能
SQL Server 2016标准版现在支持始终基本可用性组。 基本可用性组提供对主副本和辅助副本的支持。 此功能可替代过时的数据库镜像技术,实现高可用性。 有关基本和高级可用性组之间差异的更多信息,请参阅基本可用性组(始终在可用性组上) 。
现在,在一组只读副本中支持读取意图连接请求的负载平衡。 以前的行为总是将连接指向路由列表中的第一个可用的只读副本。 有关详细信息,请参阅在只读副本之间配置负载平衡 。
支持自动故障切换的副本数量已由2个增加到3个。
“始终故障转移群集”现在支持组管理服务帐户。 有关详细信息,请参阅组管理服务帐户 。 对于Windows Server 2012 R2,需要进行更新以避免密码更改后的临时停机时间。 要获取更新,请参阅基于gMSA的服务在Windows Server 2012 R2域中的密码更改后无法登录 。
始终在可用性组上支持分布式事务和Windows Server 2016上的DTC。有关详细信息,请参阅支持分布式事务 。
当数据库脱机时,现在可以配置始终在可用性组中进行故障转移。 此更改需要在CREATE AVAILABILITY GROUP(Transact-SQL)或ALTER AVAILABILITY GROUP(Transact-SQL)语句中将DB_FAILOVER选项设置为ON 。
Always On现在支持加密数据库。 当您创建新的可用性组或向现有的可用性组添加数据库或添加副本时,可用性组向导将提示您输入包含数据库主密钥的任何数据库的密码。
两个单独的Windows Server故障转移群集(WSFC)中的两个可用性组现在可以组合成分布式可用性组。 有关详细信息,请参阅分布式可用性组(始终在可用性组上) 。
直接播种允许将辅助副本通过网络自动播种(而不是手动播种,需要在辅助节点上恢复目标数据库的物理备份)。 通过在CREATE AVAILABILITY GROUP(Transact-SQL)或ALTER AVAILABILITY GROUP(Transact-SQL)语句中设置SEEDING_MODE = AUTOMATIC来指定直播。 您还必须在与直接播种一起使用的每个辅助副本上为ALTER AVAILABILITY GROUP(Transact-SQL)指定GRANT CREATE ANY DATABASE 。
性能改进 - 可用性组的同步吞吐量通过主副本上的日志块的并行和更快的压缩,优化的同步协议以及辅助副本上的并行解压缩和重做日志记录而增加了约10倍。 这增加了可读副本的新鲜度,并在故障转移的情况下减少了数据库恢复时间。 请注意,在SQL Server 2016中,针对内存优化的表的重做并不平行。
复制增强功能
- 现在支持复制内存优化表。 有关详细信息,请参阅复制到内存优化表订阅服务器 。
- Azure SQL数据库现在支持复制。 有关更多信息,请参阅复制到SQL数据库 。
工具增强功能
管理工作室
下载最新的SQL Server Management Studio(SSMS)
- SQL Server Management Studio支持正在开发的用于连接到Microsoft Azure的Active Directory认证库(ADAL)。 这将替代SQL Server 2014 Management Studio中使用的基于证书的身份验证。
- SQL Server Management Studio安装需要安装.NET 4.6作为先决条件。 .NET 4.6将安装SQL Server Management Studio中时自动被安装程序安装。
- 复制或保存从结果网格文本时,一个新的查询结果网格选项支持保持回车/换行(换行符)。从工具/选项菜单设置此。
- SQL Server管理工具不再从主要特征树安装; 详见安装与SSMS SQL Server管理工具。
- SQL Server Management Studio中安装需要安装.NET 4.6.1作为先决条件。.NET 4.6.1将安装SQL Server Management Studio中时自动被安装程序安装。
升级顾问
SQL服务器2016升级顾问预览是一个独立的工具,使以前版本的用户可以运行一组升级规则对他们的SQL Server数据库要找准突破和行为的变化,并建议使用的功能以及提供帮助,采用了新的功能,如拉伸数据库。
您可以下载升级顾问预览这里,也可以通过使用Web平台安装程序进行安装。
也可以看看
from :https://docs.microsoft.com/zh-cn/sql/database-engine/configure-windows/what-s-new-in-sql-server-2016-database-engine