SQL Server 2019 新版本
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秒。
SQL Server 2019 新版本的更多相关文章
- SQL Server 2019 新函数Approx_Count_Distinct
2019年11月4日微软发布了2019正式版,该版本有着比以往更多强大的新功能和性能上的优势,可参阅SQL Server 2019 新版本. SQL Server 2019具有一组丰富的增强功能和新功 ...
- SQL Server 2019 深度解读:微软数据平台的野望
本文为笔者在InfoQ首发的原创文章,主要利用周末时间陆续写成,也算近期用心之作.现转载回自己的公众号,请大家多多指教. 11 月 4 日,微软正式发布了其新一代数据库产品 SQL Server 20 ...
- Cenots7下安装运行.NET Core、MicroSoft SQL Server 2019 preview 的基础实践
一:概要 适应人群:.Net初学者.想了解.Net Core在Linux系统中的运行环境搭建者.初次且想在linux上应用.Net Core开发应用程序者: 基础技能:了解.NET基础开发技能者.有一 ...
- 【服务器踩坑】SSMS链接Ubuntu上的SQL Server 2019 报错 TCP Provider: Error code 0x2746
昨天在一台Ubuntu18.04.2 上安装了SQL Server 2019 for Linux 服务正常启动了,但是却无法通过命令行工具或者远程Windows机器上的SSMS链接. SSMS错误是 ...
- 微软SQL Server 2019 全新发布,更新内容亮点都在这里了
IT之家11月7日消息 在Microsoft Ignite 2019 大会上,微软正式发布了新一代数据库产品SQL Server 2019.使用统一的数据平台实现业务转型SQL Server 20 ...
- SQL Server 2019 中标量用户定义函数性能的改进
在SQL Server中,我们通常使用用户定义的函数来编写SQL查询.UDF接受参数并将结果作为输出返回.我们可以在编程代码中使用这些UDF,并且可以快速编写查询.我们可以独立于任何其他编程代码来修改 ...
- [Docker] - 安装 SQL Server 2019,使用 SSMS 进行登录
镜像仓库 https://hub.docker.com/_/microsoft-mssql-server 拉取镜像并进行安装(以 SQL Server 2019 CTP 3.2 为例) docker ...
- SQL Server 2019 Linux Docker 在主机上以其他非根用户的身份运行容器
docker logs mssql2019SQL Server 2019 will run as non-root by default.This container is running as us ...
- SQL Server 2019 安装教程
SQL Server 2019 安装教程 下载安装SQL: 1.下载SQL Server 2019 Developer 官方网址:下载地址. 2.下拉选择免费版本,直接点击下载(别问,问就是家境贫寒
随机推荐
- Linux 中 Buffer/Cache内存占用过高解决方法
在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是kb,我的服务器是128G内存,所以数字显 ...
- 【13NOIP提高组】转圈游戏(信息学奥赛一本通 1875)(洛谷 1965)
题目描述 nn 个小描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号 ...
- 第09组 Alpha冲刺(1/6)
队名:观光队 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 完成服务器连接数据库部分代码 展示GitHub当日代码/文档签入记录 接下来的计划 与服务器连接,配合前 ...
- 第08组 Alpha冲刺(5/6)
队名:955 组长博客:https://www.cnblogs.com/cclong/p/11898112.html 作业博客:https://edu.cnblogs.com/campus/fzu/S ...
- [基础不过关填坑] 跨iframe触发事件
子iframe $("#testId").on("change",function(){ alert("change") }) 父页面 $( ...
- Redis(一) 数据结构与底层存储 & 事务 & 持久化 & lua
参考文档:redis持久化:http://blog.csdn.net/freebird_lb/article/details/7778981 https://blog.csdn.net/jy69240 ...
- Unity2019.1中文技术手册离线版
使用离线版优质.系统化的教程.经验文档.参考手册,为开发者节省时间,提高效率! 解压后打开UnityDocumentation_2019.1/Manual/index.html 需要的自取,下载地址: ...
- Server Tomcat v8.5 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
Server Tomcat v9.0 Server at localhost was unable to start within 45 seconds. If the server requires ...
- Self-Supervised Representation Learning
Self-Supervised Representation Learning 2019-11-11 21:12:14 This blog is copied from: https://lilia ...
- Oracle数据库备份、灾备的23个常见问题
为了最大限度保障数据的安全性,同时能在不可预计灾难的情况下保证数据的快速恢复,需要根据数据的类型和重要程度制定相应的备份和恢复方案.在这个过程中,DBA的职责就是要保证数据库(其它数据由其它岗位负责) ...