SQL Server 2019 (15.x) 新特性概要

2019.11.4 SQL Server 2019发布,趁热打铁了解下2019的新特性。下面整理一些个人感觉重要的或者工作上能用到的新特性,有删减,完整版参考 SQL Server 2019 中的新增功能 - SQL Server | Microsoft Learn

SQL Server 2019 (15.x) 在早期版本的基础上构建,旨在将SQL Server发展成一个平台,以提供开发语言、数据类型、本地或云以及操作系统选项。

一、 数据虚拟化和SQL Server 2019大数据群集

SQL Server大数据集群可深度集成行业标准大数据源,并提供新的数据虚拟化功能。SQL Server 2019大数据集群利用PolyBase功能实现数据虚拟化,这可结合多个来源的数据,而无需移动或复制数据。

大数据集群基于多种不同的技术,包括Docker容器、Apache Spark、Hadoop和Kubernetes中的SQL Server on Linux。 使用户能够在Kubernetes上部署可扩展的SQL Server容器集群,这些集群可使用Transact-SQL读取、写入和处理大数据。

体系结构概述

新增功能或更新详细信息
可缩放的大数据解决方案
  • 部署运行在Kubernetes上的SQL Server、Spark和HDFS容器可缩放群集
  • 在Transact-SQL或Spark中读取、写入和处理大数据
  • 通过群集查询多个外部数据源的数据,轻松合并和分析高价值关系数据
  • 在由SQL Server管理的HDFS中存储大数据
  • 将数据用于 AI、机器学习和其他分析任务
  • SQL Server 主实例使用 Always On可用性组技术为所有数据库提供高可用性和灾难恢复

详情参考什么是 SQL Server 大数据群集

通过Polybase进行数据虚拟化

二、 智能数据库

1. 智能查询处理

新增功能或更新详细信息
行模式内存授予反馈(Row mode memory grant feedback)

通过调整批处理模式和行模式运算符的内存授予大小,扩展了批处理模式内存授予反馈功能。 避免内存过度授予导致的内存浪费和并发减少,以及内存授予不足导致操作须在磁盘执行的问题。详细参考行模式内存授予反馈

表变量延迟编译

提升了引用表变量的查询的计划质量和整体性能。 在优化和初始编译期间,此功能传播基于实际表变量行计数的基数估计,这种准确的行计数信息可优化下游计划操作。 详细参考表变量延迟编译

使用APPROX_COUNT_DISTINCT进行近似查询处理强调响应速度而非绝对精度,结果估计在实际值的2%以内。近似查询处理。类型Oracle。
行存储上的批处理模式(Batch mode on rowstore)

批处理模式在分析工作负荷期间可更高效地使用CPU,但低于2019的版本中,只有当查询包含具有列存储索引的运算时才使用它。 然而,有些应用程序可能会使用列存储索引不支持的功能,因此无法利用批处理模式。从2019开始批处理模式执行不再要求必须有列存储索引。参考Batch mode on rowstore

2. 内存数据库

新增功能或更新详细信息
混合缓冲池

可在需要时直接访问位于永久性内存 (PMEM) 设备上数据库文件中的数据库页。 参阅混合缓冲池

内存优化的TempDB元数据

 2019中,管理临时表元数据涉及的系统表可以移动到无闩锁的非持久内存优化表中( latch-free non-durable memory-optimized tables),这可以有效地消除瓶颈并减轻TempDB繁重的工作负荷。 请参阅内存优化 TempDB 元数据

In-Memory OLTP支持数据库快照支持对包含内存优化文件组的数据库创建数据库快照

3. 智能性能

新增功能或更新详细信息
OPTIMIZE_FOR_SEQUENTIAL_KEY

有助于提高索引高并发插入的吞吐量,适用于易发生last-page 插入争用的索引,常见于有顺序键(如标识列、序列或日期/时间列)的索引。详情参考 CREATE INDEX

强制快进和静态游标(Forcing fast forward and static cursors)Query Store plan支持强制快进和静态游标。 请参阅计划强制支持快进和静态游标
资源调控ALTER | CREATE WORKLOAD GROUP的REQUEST_MAX_MEMORY_GRANT_PERCENT选项可配置值从整型更改为浮点型,允许更精细的内存限制。 请参阅修改工作负载组创建工作负载组
减少重编译负载通过减少不必要的重编译,提升了跨多个作用域(multiple scopes)使用临时表时的性能。 请参阅减少了对工作负荷的重新编译
Indirect checkpoint scalability请参阅改进了间接检查点可伸缩性
并发PFS更新PFS 页是数据库文件中的特殊页面,用来在为对象分配空间时帮助定位可用空间。 PFS页上的页闩锁争用通常与tempdb相关,但当并发过高时也可能会发生在用户数据库上。 此改进改变了并发PFS更新的方式,能在共享闩锁(而不是排他闩锁)下进行更新。 2019起,此行为默认在所有数据库(包括tempdb)中启用。

4. 监控

新增功能或更新详细信息
WAIT_ON_SYNC_STATISTICS_REFRESHsys.dm_os_wait_stats视图中新增的等待类型。 它表示实例级别上同步统计信息刷新操作(synchronous statistics refresh operations)累计耗费的时间。 请参阅 sys.dm_os_wait_stats
自定义Query Store捕获策略启用后,在“Query Store捕获策略”下会有额外的Query Store配置,可更好地调整特定服务器中数据收集内容。请参阅 ALTER DATABASE SET 选项
LIGHTWEIGHT_QUERY_PROFILING新数据库范围配置。 请参阅 LIGHTWEIGHT_QUERY_PROFILING
sys.dm_exec_requests的command列

如果select正在等待同步统计信息更新操作,会显示SELECT (STATMAN)。请参阅 sys.dm_exec_requests

sys.dm_exec_query_plan_stats新的DMF,返回查询最后的实际执行计划。请参阅 sys.dm_exec_query_plan_stats
LAST_QUERY_PLAN_STATS启用sys.dm_exec_query_plan_stats的配置。 请参阅 ALTER DATABASE SCOPED CONFIGURATION
query_post_execution_plan_profile

基于轻量级profiling的收集实际执行计划的扩展事件,与基于profiling的query_post_execution_showplan不同。请参阅查询分析基础结构

sys.dm_db_page_info(database_id,file_id,page_id,mode)新的DMF,返回数据库中的page信息。请参阅sys.dm_db_page_info (Transact-SQL)

三、 开发相关

1. Unicode 支持

新增功能或更新详细信息
支持UTF-8编码支持使用UTF-8字符进行导入和导出编码,以及用作数据库级或列级排序规则。也支持用于PolyBase外部表和Always Encrypted(未用于 Enclave 时)。

2. 语言扩展

除了用 R 和 Python 编写的代码外,开发人员现在还可以在 SQL Server 脚本和存储过程中执行 Java 代码

3. 错误信息

新增功能或更新详细信息
详细截断警告截断错误信息默认包括表名和列名以及截断值。 请参阅 VERBOSE_TRUNCATION_WARNINGS

五、 关键任务安全性

新增功能或更新详细信息
Always Encrypted with secure enclaves

通过对服务器端安全隔离区中的纯文本数据启用计算,Always Encrypted扩展了就地加密(in-place encryption)和丰富计算(rich computations)功能。就地加密可提高加密列、旋转列加密密钥等加密操作的性能和可靠性,因为这样可以避免将数据移出数据库。 对丰富计算(模式匹配和比较操作)的支持可将 Always Encrypted 解锁到一组更广泛的方案和应用程序。 请参阅包含安全 Enclave 的 Always Encrypted

SQL Server 配置管理器中的证书管理请参阅证书管理(SQL Server 配置管理器)

六、 高可用性

1. 可用性组

新增功能或更新详细信息
最多五个同步副本2019将同步副本的最大数目从2017中的3个增加到了5个(一主四从)
次要副本到主要副本连接重定向允许配置客户端在从库的读写操作自动重定向到主库。请参阅次要副本到主要副本读/写连接重定向(AlwaysOn 可用性组)。类似Oracle 19c。

2. 恢复

新增功能或更新详细信息
加速数据库恢复(accelerated database recovery)

通过accelerated database recovery(ADR)减少重启或长事务回滚后的数据库恢复时间。请参阅加速数据库恢复

3. 可重新开始的操作(Resumable operations)

新增功能或更新详细信息
Online clustered columnstore index build and rebuild请参阅联机执行索引操作
Resumable online rowstore index build请参阅联机执行索引操作
Suspend and resume initial scan for Transparent Data Encryption (TDE)请参阅透明数据加密 (TDE) 扫描 - 暂停和继续

七、 设置

新增功能或更新详细信息
新内存设置选项在安装过程中设置“最小服务器内存(MB)” 和“最大服务器内存(MB)” 服务器配置, 建议值遵循服务器内存配置选项中的内存配置准则。请参阅“数据库引擎配置 - 内存”页
新并行度设置选项在安装过程中设置“最大并行度” 服务器配置。默认值遵循配置服务器配置选项“最大并行度”中的最大并行度准则。请参阅“数据库引擎配置 - MaxDOP”页

八、 Linux相关新特性

新增功能或更新详细信息
支持复制Linux 上的 SQL Server 复制
支持 Microsoft 分布式事务处理协调器 (MSDTC)如何在 Linux 上配置 MSDTC
OpenLDAP支持第三方AD供应商教程:对 Linux 上的 SQL Server 使用 Active Directory 身份验证
支持机器学习在 Linux 上配置机器学习
TempDB改进默认情况下,Linux 上的 SQL Server 新安装会根据逻辑核心数创建多个 TempDB 数据文件(最多 8 个数据文件)。 这不适用于就地次要版本或主版本升级。 每个 TempDB 文件的大小为 8 MB,且自动增长大小为 64 MB。 此行为类似于 Windows 上的默认 SQL Server 安装。
支持PolyBase在 Linux 上为非 Hadoop 连接器安装 PolyBase

PolyBase 类型映射
支持变更数据捕获 (CDC)Linux 上的 SQL Server 2019 现在支持变更数据捕获 (CDC)。

九、 容器

新功能或更新细节
Microsoft容器注册表Microsoft Container Registry现在替换Docker Hub作为微软新官方容器镜像
Non-root containers2019允许以非root用户身份启动SQL Server进程来创建更安全的容器。请参阅以非root用户身份构建和运行SQL Server容器
红帽认证的容器镜像2019开始,可以在Red Hat Enterprise Linux上运行SQL Server容器。
支持PolyBase和机器学习参考 SQL Server in container GitHub repository.


参考

What's new in SQL Server 2019 - SQL Server | Microsoft Learn

SQL Server 2019 中的新增功能 - SQL Server | Microsoft Learn

新年新气象,从SQL Server 2019新特性开始!_阿特的博客-CSDN博客_sql server 2019 特性

微软发布 SQL Server 2019 新版本_数据库_田晓旭_InfoQ精选文章

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值