新增功能(数据库引擎)
最新版本的 SQL Server 数据库引擎引入了新功能和增强功能,可提高设计、开发和维护数据存储系统的架构师、开发人员和管理员的强大功能和工作效率。 这些是数据库引擎已得到增强的领域。
数据库引擎功能增强
内存优化表
In-Memory OLTP 是集成到 SQL Server 引擎中的内存优化数据库引擎。 内存中 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 2012 SP1 CU2 中引入了SQL Server备份到 URL,仅受 Transact-SQL、PowerShell 和 SMO 支持。 在 SQL Server 2014 中,可以使用 SQL Server Management Studio 备份到 Azure Blob 存储服务或从 Azure Blob 存储服务还原。 “备份”任务和维护计划都可使用该新选项。 有关详细信息,请参阅在 SQL Server Management Studio 中使用备份任务、使用维护计划向导SQL Server备份到 URL 和使用 SQL Server Management Studio 从 Azure 存储还原。
SQL Server托管备份到 Azure
SQL Server Microsoft Azure 托管备份基于SQL Server备份到 URL,是SQL Server提供的一项服务,用于管理和计划数据库和日志备份。 在此版本中,仅支持备份到 Azure 存储。 SQL Server Microsoft Azure 托管备份可以在数据库和实例级别配置,从而在数据库级别和实例级别实现精细控制。 可以在本地运行的SQL Server实例和在 Azure 虚拟机上运行的SQL Server实例上配置SQL Server Microsoft Azure 的托管备份。 建议用于在 Azure 虚拟机上运行SQL Server实例。 有关详细信息,请参阅 SQL Server 托管备份到 Azure。
备份加密
您现在可以选择在备份过程中对备份文件进行加密。 目前支持的加密算法包括 AES 128、AES 192、AES 256 和 Triple DES。 要在备份过程中执行加密,您必须使用证书或非对称密钥。 有关详细信息,请参阅备份加密。
针对基数估计的新设计
基数估计逻辑(称为基数估算器)在 2014 SQL Server重新设计,以提高查询计划的质量,从而提高查询性能。 新的基数估计器纳入在新型 OLTP 和数据仓库工作负荷中表现优异的假设和算法。 它基于针对新型工作负荷的深入基数估计研究,以及我们在过去 15 年在改进 SQL Server 基数估计器方面的学习。 客户反馈表明,尽管大多数查询将会从更改或保持不更改中受益,但与以前的基数估计器相比,少数查询可能会显得退步。 有关性能优化和测试建议,请参阅基数估计 (SQL Server) 。
延迟持续性
SQL Server 2014 引入了通过将部分或所有事务指定为延迟持久事务来减少延迟的功能。 延迟持久事务在事务日志记录写入磁盘之前将控制权归还给客户端。 持续性可在数据库级别、提交级别或原子块级别进行控制。
有关详细信息,请参阅主题 控制事务持续性。
AlwaysOn 增强功能
SQL Server 2014 包含针对 AlwaysOn 故障转移群集实例和 AlwaysOn 可用性组的以下增强功能:
“添加 Azure 副本向导”简化了用于 AlwaysOn 可用性组的混合解决方案创建。 有关详细信息,请参阅使用 (SQL Server) 添加 Azure 副本向导。
辅助副本的最大数目从 4 增加到 8。
断开与主副本的连接时,或者在缺少群集仲裁期间,可读辅助副本现在保持可用于读取工作负荷。
故障转移群集实例 (FCI) 现在可使用群集共享卷 (CSV) 作为群集共享磁盘。 有关详细信息,请参阅Always On故障转移群集实例。
新的系统函数 、sys.fn_hadr_is_primary_replica和新的 DMV (sys.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。 有关详细信息,请参阅 Resource Governor Resource Pool 和 CREATE RESOURCE POOL (Transact-SQL) 。
ALTER RESOURCE GOVENOR 的 MAX_OUTSTANDING_IO_PER_VOLUME 设置可设置每个磁盘卷的最大待定 I/O 操作数 (IOPS)。 可以使用此设置根据某一磁盘卷的 IO 特性调整 IO 资源控制,并且可用于在 SQL Server 实例边界限制发出的 IO 数目。 有关详细信息,请参阅 ALTER RESOURCE GOVERNOR (Transact-SQL)。
Online Index Operation 事件类
联机索引操作事件类的进度报告现在有两个新的数据列: PartitionId 和 PartitionNumber。 有关详细信息,请参阅 进度报告:联机索引操作事件类。
数据库兼容性级别
90 兼容级别在 SQL Server 2014 中无效。 有关详细信息,请参阅 ALTER DATABASE Compatibility Level (Transact-SQL)
Transact-SQL 增强功能
CLUSTERED 和 NONCLUSTERED 的内联规范
对于基于磁盘的表,现在允许 CLUSTERED
和 NONCLUSTERED
索引的内联规范。 创建具有内联索引的表等效于发布一个 create table 命令,后随 CREATE INDEX
语句。 内联索引不支持包含列和筛选条件。
SELECT ... INTO
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.column_store_row_groups
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
。
针对内存中 OLTP 的系统视图增强功能
有关支持 In-Memory OLTP 的系统视图增强功能的信息,请参阅 In-Memory OLTP 的系统视图、存储过程、DMV 和等待类型。
安全性改进
CONNECT ANY DATABASE 权限
新的服务器级权限。 将 CONNECT ANY DATABASE 授予某个登录名,该登录名必须连接到当前存在的所有数据库和将来可能创建的任何新数据库。 不要在任何数据库中授予超过连接的任何权限。 与 SELECT ALL USER SECURABLES 或 VIEW SERVER STATE
结合使用,以允许审核进程查看SQL Server实例上的所有数据或所有数据库状态。
IMPERSONATE ANY LOGIN 权限
新的服务器级权限。 授予后,当连接到数据库时,允许中间层进程模拟连接到它的客户端帐户。 被拒绝时,高特权的登录名可以阻止模拟其他登录名。 例如,可通过模拟其他登录名来阻止具有 CONTROL SERVER 权限的登录名。
SELECT ALL USER SECURABLES 权限
新的服务器级权限。 授予后,作者等登录名可以查看用户可连接到的所有数据库中的数据。
部署改进
Azure VM
将 SQL Server 数据库部署到 Microsoft Azure 虚拟机可以SQL Server数据库部署到 Azure VM。
ReFS
现在支持在 ReFS 上部署数据库。