2019 年 11 月 4 日,微软在美国奥兰多举办的 Ignite 大会上发布了关系型数据库 SQL Server 的新版本。与之前版本相比,新版本的 SQL Server 2019 具备以下重要功能:在 Linux 和容器中运行的能力,连接大数据存储系统的 PolyBase 技术。

据了解,SQL Server 2019 可利用 PolyBase 技术进行全面的数据虚拟化,并将 Linux/ 容器与 Kubernetes(K8s)相兼容,交付了一种名为大数据群集(BDC)的新技术。BDC 技术完成了基于 K8s 的 SQL Server 多集群实现,同时可以与 Apache Spark、YARN、HDFS 相结合,提供一个可处理 OLTP(在线事务处理)、数据湖、甚至是机器学习要求的单一平台。该技术可以部署在 K8s 集群、本地、云中,包括微软提供的Azure Kubernetes Services(AKS)。

SQL Server 2019 新版本的主要功能

OMNI-POLYBASE

Linux 和容器的兼容性不仅是实现 BDC 技术的关键,同时也是实现 PolyBase 扩展功能集的关键。现在,PolyBase 不仅可以连接的 Hadoop 集群和 Azure 存储,同时也可以连接到其它 SQL Server 实例。基于此,我们可以完成 BDC 主节点与 BDC 计算、数据和存储池的通信,实现存储池中的节点连接到 HDFS 存储中位于同一位置的数据。

微软还提供了一种新的跨平台工具——Azure Data Studio,可用于 T-SQL 查询、notebook 开发,甚至可以在 BDC 部署上运行 Spark 作业,以便将所有内容绑定在一起。

以上还不是 PolyBase 功能的“终点”,PolyBase 还可以连接到 Oracle、Teradata、MongoDB 以及Azure Cosmos DB。再进一步,PolyBase 可以连接到客户拥有的任何数据源和 ODBC 驱动程序。

借助于 PolyBase,SQL Server 可以承担数据虚拟化工作负载,即 SQL Server 像是一个一站式商店,用于连接到多平台 OLTP、NoSQL、数据仓库和数据湖工作负载。不过,这其中大部分的连接是虚拟的,数据仍可以保留在本机存储库中,但是却可以将尽可能多的查询工作托管给远程平台。

作为数据库的相关功能

无论 SQL Server 拥有多少附加功能,我们都不能忘记 SQL Server 本质是一款数据库。下面,我们就来看看作为数据库,SQL Server 有哪些提升?

  • SQL Server TempDB 可配置为内存优化的数据库 (使用 SQL Server 的内存 OLTP 技术),极大地提高了性能;

  • SQL Server 获得持久的内存能力;

  • SQL Server 的查询优化器更加智能,能够在处理查询时分配更多的资源;

  • SQL Server 支持 UTF-8 字符编码;

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

  • Accelerated Database Recovery 功能有助于快速恢复因断点或者其它严重错误而中断的长时间运行的事务,无需关心事务中断发生故障的位置;

  • 新特性 Secure enclave 增强了 SQL Server 的加密特性;

智能查询处理

SQL Server和Azure SQL数据库通过为性能下降的执行计划添加自动查询调整来在此功能上构建智能。SQL Server 2019通过更改为查询进行排序和比较而授予的内存量来进一步采取此步骤,这可能导致吞吐量和性能问题。

SQL Server 2019还引入了标量函数内联和表变量的延迟编译。这两个功能都是SQL Server早期版本中的性能反模式,因为它们导致查询处理中的行估计不正确。在测试中,我发现SQL Server 2019中使用标量函数的查询的性能提高了10倍。详细可以看我这篇文章 “SQL Server 2019 中标量用户定义函数性能的改进”。

更智能的监视

查询存储功能是一个主要优点,但是在某些系统上,它引起了一些资源争用问题。这对于仅运行动态SQL(对于数据库发出的每个查询都是唯一的哈希值)的客户特别有影响。SQL Server 2019引入了自定义捕获选项,以此可以微调数据收集以避免此问题。

此外,在执行计划收集方面有许多增强功能。这些使您可以捕获实际的执行计划,从而使您可以检查查询使用的行数,并将其与查询优化器使用的估计值进行比较。反过来,这可以帮助您快速隔离性能问题。您始终可以在使用事件探查器或扩展事件功能之前执行此操作,但是执行这些捕获的开销非常高。

优化的插入性能

SQL Server在试图将大量的顺序记录插入表中时一直遇到瓶颈。这是由于内存争用,因为在给定时刻只有一个工作线程可以访问数据页。内存中的OLTP功能旨在解决此问题,但是它不能与所有数据类型100%兼容,因此不能在任何地方使用。

SQL Server 2019引入了一个称为``optimize_for_sequential_key''的可选功能,该功能可以减少这些瓶颈的影响。Microsoft引用此功能最多可将性能提高40%。可以在表级别添加此功能,并且仅应将受益于此功能的工作负载。

SQL Server的临时工作区TempDB是另一个性能改进。利用内存中的OLTP功能(消除了数据锁存层的瓶颈),内存优化的TempDB元数据可为繁忙的TempDB提供更大的整体吞吐量。

更快的数据库恢复

担任数据库管理员的人都感到很难将数据库恢复到100%,需要等待很长时间,等待恢复过程真正完成。这是因为有一个称为崩溃恢复的过程,在该过程中,必须将数据库事务日志而不是数据库备份中的事务回放到数据库中。 加速的数据库恢复通过实现版本存储来更改此过程,以允许在还原或服务器重新启动后更快地回放事务。这样做的性能开销很小(在客户测试中为1-2%),但效果非常明显。一次回滚需要90秒,而减少到1秒。

参考

2019新功能

SQL Server 2019 新版本的更多相关文章

  1. SQL Server 2019 新函数Approx_Count_Distinct

    2019年11月4日微软发布了2019正式版,该版本有着比以往更多强大的新功能和性能上的优势,可参阅SQL Server 2019 新版本. SQL Server 2019具有一组丰富的增强功能和新功 ...

  2. SQL Server 2019 深度解读:微软数据平台的野望

    本文为笔者在InfoQ首发的原创文章,主要利用周末时间陆续写成,也算近期用心之作.现转载回自己的公众号,请大家多多指教. 11 月 4 日,微软正式发布了其新一代数据库产品 SQL Server 20 ...

  3. Cenots7下安装运行.NET Core、MicroSoft SQL Server 2019 preview 的基础实践

    一:概要 适应人群:.Net初学者.想了解.Net Core在Linux系统中的运行环境搭建者.初次且想在linux上应用.Net Core开发应用程序者: 基础技能:了解.NET基础开发技能者.有一 ...

  4. 【服务器踩坑】SSMS链接Ubuntu上的SQL Server 2019 报错 TCP Provider: Error code 0x2746

    昨天在一台Ubuntu18.04.2 上安装了SQL Server 2019 for Linux 服务正常启动了,但是却无法通过命令行工具或者远程Windows机器上的SSMS链接. SSMS错误是 ...

  5. 微软SQL Server 2019 全新发布,更新内容亮点都在这里了

    IT之家11月7日消息 在Microsoft   Ignite 2019 大会上,微软正式发布了新一代数据库产品SQL Server 2019.使用统一的数据平台实现业务转型SQL Server 20 ...

  6. SQL Server 2019 中标量用户定义函数性能的改进

    在SQL Server中,我们通常使用用户定义的函数来编写SQL查询.UDF接受参数并将结果作为输出返回.我们可以在编程代码中使用这些UDF,并且可以快速编写查询.我们可以独立于任何其他编程代码来修改 ...

  7. [Docker] - 安装 SQL Server 2019,使用 SSMS 进行登录

    镜像仓库 https://hub.docker.com/_/microsoft-mssql-server 拉取镜像并进行安装(以 SQL Server 2019 CTP 3.2 为例) docker ...

  8. SQL Server 2019 Linux Docker 在主机上以其他非根用户的身份运行容器

    docker logs mssql2019SQL Server 2019 will run as non-root by default.This container is running as us ...

  9. SQL Server 2019 安装教程

    SQL Server 2019 安装教程 下载安装SQL: 1.下载SQL Server 2019 Developer 官方网址:下载地址. 2.下拉选择免费版本,直接点击下载(别问,问就是家境贫寒

随机推荐

  1. MongoDB repairDatabase 释放磁盘空间

    repairDatabase是官方文档中认为唯一可以回收硬盘空间的方法. repairDatabase is the appropriate and the only way to reclaim d ...

  2. class-transformer 方便的json 对象转class

    在我们日常web开发中经常碰到需要json 到类的处理,因为json 就是普通的数据,没有处理能力,class 具有业务处理能力, 但是需要数据的支持,class-transformer 刚好做为了一 ...

  3. pmm 添加proxysql metrics

    pmm 对于proxysql 的管理是基于metrics的进行处理的,使用的是proxysql exporter 对于proxysql exporter的添加,比较简单,我们可以通过独立的额容器运行e ...

  4. linux命令之------部分细节点

    创建文件夹/文件命令以及清除模式 mkdir +文件夹名字 touch +文件名字 rm -fr 删除文件,文件夹 -f强制删除 -r是递归 查询linux下所有启动的线程: ps -ef|grep ...

  5. 洛谷/SPOJ SP3267 题解

    若想要深入学习主席树,传送门. Description: 给定数列 \(\{a_n\}\) ,求闭区间 \([l,r]\) 的互异的个数. Method: 扫描序列建立可持续化线段树,若此元素是第一次 ...

  6. CSS样式的引入方式

    test.css div{ color:yellow; } 在html中引入 <link href="test.css" type="text/css" ...

  7. Eureka 的高级使用

    基础架构Eureka架构中的三个核心角色: 服务注册中心 Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-demo 服务提供者 提供服务的应用,可以是SpringBo ...

  8. 如何在ProXmoX VE 下虚拟机安装 黑群晖 DSM 6.1.6

    ProXmoX 官方下载地址: https://www.proxmox.com/en/downloads Proxmox是一个非常优秀的开源虚拟化环境,集诸多优点于一身:开源免费,稳定可靠,架构简洁, ...

  9. 使用GParted调整ubuntu根目录空间大小

    一.背景 Win10系统下安装ubuntu16.04双系统-常见问题解答 由于安装双系统时,ubuntu分区设置如下: 1) 主分区 ext4 / 30720MB 2) 主分区 swap area 8 ...

  10. Appium-Python-Windows 环境搭建

    目录 1.安装JDK 2.安装Android SDK 3.安装Node.js 4.安装Appium server 5.安装Python 6.安装Appium-Python-Client 7.安装pyt ...