此最新版本的 SQL Server 数据库引擎引入了新功能和增强功能,提高了设计、开发和维护数据存储系统的架构师、开发人员和管理员的强大功能和工作效率。 这些是数据库引擎已增强的区域。
数据库引擎功能增强
Memory-Optimized 表
In-Memory OLTP 是集成到 SQL Server 引擎中的内存优化数据库引擎。 In-Memory OLTP 已针对 OLTP 进行优化。 有关详细信息,请参阅 内存中 OLTP(内存中优化)。
Azure 中的 SQL Server 数据文件
Azure 中的 SQL Server 数据文件 支持以 Azure Blob 存储形式保存的 SQL Server 数据库文件,实现原生支持。 使用此功能,可以在本地运行的 SQL Server 或 Azure 中的虚拟机中创建数据库,并在 Azure Blob 存储中为数据创建专用存储位置。
在 Azure 虚拟机中托管 SQL Server 数据库
使用 “将 SQL Server 数据库部署到 Azure 虚拟机 向导”,从 Azure 虚拟机中的 SQL Server 实例托管数据库。
备份和还原增强功能
SQL Server 2014 包含 SQL Server 备份和还原的以下增强功能:
SQL Server 备份至 URL
SQL Server 备份到 URL 功能在 SQL Server 2012 SP1 CU2 中引入,仅支持通过 Transact-SQL、PowerShell 和 SMO 使用。 在 SQL Server 2014 中,可以使用 SQL Server Management Studio 备份或从 Azure Blob 存储服务还原。 新选项可用于备份任务和维护计划。 有关详细信息,请参阅 在 SQL Server Management Studio 中使用备份任务、 使用维护计划向导将 SQL Server 备份到 URL,以及 使用 SQL Server Management Studio 从 Azure 存储还原。
SQL Server 自动管理备份到 Azure
在 SQL Server 备份到 URL 的基础上,SQL Server 托管备份到 Microsoft Azure 是 SQL Server 提供的一项服务,用于管理和计划数据库和日志备份。 在此版本中,仅支持备份到 Azure 存储。 可以在数据库和实例级别配置 SQL Server 托管备份到 Microsoft Azure,从而在数据库级别进行精细控制,并在实例级别自动执行。 可以在本地运行的 SQL Server 实例和 Azure 虚拟机上运行的 SQL Server 实例上配置用于Microsoft Azure 的 SQL Server 托管备份。 建议对在 Azure 虚拟机上运行的 SQL Server 实例使用。 有关详细信息,请参阅 SQL Server 托管备份到 Azure。
备份加密
现在可以选择在备份作期间加密备份文件。 它支持多种加密算法,包括 AES 128、AES 192、AES 256 和 Triple DES。 必须使用证书或非对称密钥在备份期间执行加密。 有关详细信息,请参阅 备份加密。
新的基数估计设计
基数估计逻辑(称为基数估算器)在 SQL Server 2014 中重新设计,以提高查询计划的质量,因此可以提高查询性能。 新的基数估算器包含适用于新式 OLTP 和数据仓库工作负载的假设和算法。 它基于对现代工作负荷的深入基数估算研究,以及过去 15 年改进 SQL Server 基数估算器的学习。 客户的反馈表明,虽然大多数查询将受益于更改或保持不变,但与以前的基数估算器相比,少量查询可能会显示回归。 有关性能优化和测试建议,请参阅基数估计(SQL Server)。
延迟持续性
SQL Server 2014 引入了通过将某些或所有事务指定为延迟持久事务来降低延迟的能力。 延迟持久事务在将事务日志写入磁盘之前将控制权返回到客户端。 可以在数据库级别、COMMIT 级别或 ATOMIC 块级别控制持续性。
有关详细信息,请参阅“ 控制事务持续性”主题。
AlwaysOn 增强功能
SQL Server 2014 包含以下 AlwaysOn 故障转移群集实例和 AlwaysOn 可用性组的增强功能:
添加 Azure 副本向导简化了为 AlwaysOn 可用性组创建混合解决方案的过程。 有关详细信息,请参阅使用“添加 Azure 副本向导”(SQL Server)。
次要副本的最大数目从 4 增加到 8。
当与主副本断开连接或发生群集仲裁丢失时,可读次要副本仍可用于处理读取负载。
故障转移群集实例(FCI)现在可以将群集共享卷(CSV)用作群集共享磁盘。 有关详细信息,请参阅 AlwaysOn 故障转移群集实例。
可以使用一个新的系统函数sys.fn_hadr_is_primary_replica和一个新的 DMVsys.dm_io_cluster_valid_path_names。
以下 DMV 已增强,现在返回 FCI 信息: sys.dm_hadr_cluster、 sys.dm_hadr_cluster_members和 sys.dm_hadr_cluster_networks。
分区切换和索引
现在可以重新生成已分区表的各个分区。 有关详细信息,请参阅 ALTER INDEX (Transact-SQL)。
管理在线操作的锁定优先级
现在,ONLINE = ON
选项包含一个新的 WAIT_AT_LOW_PRIORITY
选项,该选项允许您指定重新生成过程应等待所需锁的时间长度。 该 WAIT_AT_LOW_PRIORITY
选项还允许配置与该重新生成语句相关的阻塞进程的终止。 有关详细信息,请参阅 ALTER TABLE(Transact-SQL)和 ALTER INDEX(Transact-SQL)。 sys.dm_tran_locks (Transact-SQL) 和 sys.dm_os_wait_stats(Transact-SQL)中提供了有关新类型的锁状态的故障排除信息。
列存储索引
这些新功能适用于列存储索引:
聚集列存储索引
使用聚集列存储索引可提高数据仓库工作负荷的数据压缩和查询性能,这些工作负荷主要执行大容量加载和只读查询。 由于聚集列存储索引是可更新的,因此工作负荷可以执行许多插入、更新和删除作。 有关详细信息,请参阅列存储索引说明和聚集列存储索引的使用。
SHOWPLAN
SHOWPLAN 显示有关列存储索引的信息。 EstimatedExecutionMode 和 ActualExecutionMode 属性有两个可能的值:Batch 或 Row。 Storage 属性有两个可能的值:RowStore 和 ColumnStore。
存档数据压缩
ALTER INDEX...REBUILD 具有新的 COLUMNSTORE_ARCHIVE 数据压缩选项,可以对列存储索引中的指定分区进行更高效的压缩。 将此用于存档,或用于需要更小的数据存储容量并可以允许更多时间来存储和检索的其他情况。 有关详细信息,请参阅 ALTER INDEX (Transact-SQL)。
缓冲池扩展
缓冲池扩展提供固态硬盘(SSD)作为非易失性随机访问内存(NvRAM)扩展与数据库引擎缓冲池的无缝集成,以显著提高 I/O 吞吐量。
增量统计
CREATE STATISTICS 和相关统计信息语句现在允许使用 INCREMENTAL 选项创建每个分区统计信息。 与之相关的语句可以提供或者报告增量统计数据。 受影响的语法包括 UPDATE STATISTICS、sp_createstats、CREATE INDEX、ALTER INDEX、ALTER DATABASE SET 选项、DATABASEPROPERTYEX、sys.databases 和 sys.stats。有关详细信息,请参阅 CREATE STATISTICS (Transact-SQL)。
物理 IO 控制的资源调控器增强功能
利用资源调控器,可以指定传入应用程序请求可在资源池中使用的 CPU、物理 IO 和内存量限制。 在 SQL Server 2014 中,可以使用新的MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置来控制为给定资源池的用户线程颁发的物理 IO。 有关详细信息,请参阅资源调控器资源池和 CREATE RESOURCE POOL(Transact-SQL)。
ALTER RESOURCE GOVENOR 的 MAX_OUTSTANDING_IO_PER_VOLUME 参数设置每个磁盘卷的最大未完成的 I/O 操作。 可以使用此设置将 IO 资源治理优化到磁盘卷的 IO 特征,并可用于限制在 SQL Server 实例边界发出的 IO 数。 有关详细信息,请参阅 ALTER RESOURCE GOVERNOR (Transact-SQL)。
Online Index Operation 事件类
联机索引操作事件类的进度报告现在有两个新的数据列:PartitionId 和 PartitionNumber。 有关详细信息,请参阅 进度报告:联机索引作事件类。
数据库兼容性级别
90 兼容级别在 SQL Server 2014 中无效。 有关详细信息,请参阅 ALTER DATABASE 兼容性级别(Transact-SQL)
Transact-SQL 改进
CLUSTERED 和 NONCLUSTERED 的内联规范
现在允许基于磁盘的 CLUSTERED
表使用内联规范和 NONCLUSTERED
索引。 使用内联索引创建表相当于执行创建表的操作,然后发出相应的 CREATE INDEX
语句。 内联索引不支持包含的列和筛选条件。
选择...插入至
语句 SELECT ... INTO
已得到改进,现在可以并行运行。 数据库兼容性级别必须至少为 110。
针对 In-Memory OLTP 的 Transact-SQL 增强功能
有关支持 In-Memory OLTP 的 Transact-SQL 更改的信息,请参阅 Transact-SQL 对 In-Memory OLTP 的支持。
系统视图增强功能
sys.xml_indexes
sys.xml_indexes(Transact-SQL) 有 3 个新列: xml_index_type
、 xml_index_type_description
和 path_id
。
sys.dm_exec_query_profiles
sys.dm_exec_query_profiles(Transact-SQL) 监视执行查询时的实时查询进度。
sys.列存储行组
sys.column_store_row_groups(Transact-SQL) 按段提供聚集列存储索引信息,以帮助管理员做出系统管理决策。
sys.databases
sys.databases(Transact-SQL)有 3 个新列:is_auto_create_stats_incremental_on
和is_query_store_on
resource_pool_id
。
In-Memory OLTP 的系统视图增强功能
有关支持 In-Memory OLTP 的系统视图增强功能的信息,请参阅 系统视图、存储过程、DMV 和 In-Memory OLTP 的等待类型。
安全增强功能
CONNECT ANY DATABASE 权限
新的服务器级别权限。 将 CONNECT ANY DATABASE 授予某个登录名,该登录名必须连接到当前存在的所有数据库和将来可能创建的任何新数据库。 不要在任何数据库中授予超过连接的任何权限。 与 SELECT ALL USER SECURABLES 结合使用,或者 VIEW SERVER STATE
允许审核过程查看 SQL Server 实例上所有数据或所有数据库状态。
模拟任何登录权限
新的服务器级别权限。 授予后,当连接到数据库时,允许中间层进程模拟连接到它的客户端帐户。 被拒绝时,高特权的登录名可以阻止模拟其他登录名。 例如,可通过模拟其他登录名来阻止具有 CONTROL SERVER 权限的登录名。
选择所有用户可保护数据库权限
新的服务器级别权限。 授予后,作者等登录名可以查看用户可连接到的所有数据库中的数据。
部署增强功能
Azure VM
将 SQL Server 数据库部署到 Microsoft Azure 虚拟机 ,即可将 SQL Server 数据库部署到 Azure VM。
ReFS文件系统
现在支持在 ReFS 上部署数据库。