作为数十载一直从事SQL Server的资深爱好者,深刻感受到SQL Server提供优秀的性能和功能给用户带来的利益和便利性。纵观全世界的数据库,无论NOSQL、大数据如何引领时代潮流,但都离不开关系数据库作为基础数据库源。SQL Server能够成为关系数据库魔力象限的领导者,就证明了其优秀的能力。长期以来,SQL Server在db-engines排名前3,保持着全球领先数据库的行业。深受用户的喜爱。随着SQL Server 2017的推出和更多新特性的支持,所受关注度越来越多。
最近两年SQL Server在新技术方面发展非常迅猛,我介绍一些关键功能,给我印象最深是基于内存中的OLTP、列存储索引和对R语言的支持。内存中 OLTP我觉得是革命性的技术,它通过提高数据访问和事务执行的效率和移除并发执行事务间的锁闩连接,来提升事务处理的性能,不是因为在内存中速度才快;而是因为内存中的数据得以优化速度才快。 数据存储、访问和处理算法经完全重新设计,以此来充分利用内存中和高并发计算的最新增强功能。
比较厉害的是,数据位于内存中并不就意味着故障发生时会丢失数据。 默认情况下,所有事务皆为完全持久事务,这意味着 SQL Server 中的其他任何表可获得相同的持久性保证,作为事务提交的一部分,所有更改会被写入到磁盘上的事务日志中。 事务提交后的任何时间如果出现故障,当数据库重新联机时数据仍在其原来的位置。 此外,内存中 OLTP 还适用于 SQL Server 的所有高可用性和灾难恢复功能,例如 AlwaysOn,备份/还原等。
列存储索引是存储和查询大型数据仓库事实数据表的标准。 它使用基于列的数据存储和查询处理,与传统的面向行的存储相比,可对数据仓库最多提高 10 倍查询性能 ,与使用非压缩数据大小相比,可提供多达 10 倍数据压缩率。内存优化的列存储索引,对每列的数据进行分组和存储,然后联接所有列以完成整个索引。 这不同于传统索引,传统索引对每行的数据进行分组和存储,然后联接所有行以完成整个索引。 对于某些查询类型,SQL Server 查询处理器可以利用列存储布局来显著改善查询执行时间。 随着数据仓库、决策支持和商业智能应用爆炸式增长,迫切需要快速读取和处理极其大量的数据集并准确地将其转换为有用的信息和知识。
使用常用的 R 统计语言,直接在 SQL Server 数据库内分析数据,而无需移动数据,在算SQL Server 2017中SQL Server R 服务已重命名为 SQL Server 机器学习服务,以反映对除 R 语言外的 Python 的支持。 可以使用机器学习服务(数据库内)在 SQL Server 中运行 R 或 Python 脚本,或者安装 Microsoft 机器学习服务器(独立)来部署和使用不需要 SQL Server 的 R 和 Python 模型。SQL Server 开发人员现在可访问开放源代码生态系统中提供的大量 Python ML 和 AI 库。
SQL Server 2017又 跨出了重要的一步,它力求通过将 SQL Server 的强大功能引入 Linux、基于 Linux 的 Docker 容器和 Windows,使用户可以在 SQL Server 平台上选择开发语言、数据类型、本地开发或云端开发,以及操作系统开发,这是历史性的一步,曾几何时,因为被绑定到Windows上而耿耿于怀,如今也可以开怀拥抱其他平台。
在做云服务之前,我都在互联网行业从事SQL Server,那时SQL Serve在互联网行业应用也是非常广泛的,并且也取得了巨大的功能,在高并发场景,能够处理得很好。而比较奇怪的现象,很多人会讲SQL Server很难用,性能不好。但我觉得不必担忧,使用过SQL Server就会觉得它的高性能和便利性,一旦使用会有很多惊喜。而事实上,SQL Server的主要应用市场是全方位了的,包括政府,金融,生产制造,医疗,互联网企业(比如共享单车、酒店旅游),还有快消行业,几乎没有SQL Server不能服务的行业。说明SQL Serve凭借优秀的性能和功能赢得用户的信任和亲睐。国内目前很多ERP提供商都提供SQL Server解决方案,我们在服务过程中也得到许多反馈,当然,也有很多人片面认为SQL Server不好用,我想其原因是骨子里对微软系的拒绝吧,这也不足为奇。
事实上,我们将SQL Server云化掉之后,有很多用户在使用我们的服务,不仅有传统行业,也有新型行业,比如共享单车。云服务化的SQL Server有哪些好处呢? 我想从几个方面来说,第一是部署简单,以前我们部署做很多事情,服务器得买,然后得设置网络环境,得安装操作系统,得安装数据库,配置数据库等,使用云化的SQL Server你只需要选择一个规格,然后等10多分钟,一个数据库实例就准备妥当。第二是即买即用,就像水电煤一样购买那么方便。第三是资源可以随时弹性升降级,在搞活动的时候资源可以买多点,促销完成就可以将资源回收,这样能够显著降低成本。第三是自动化运维,你不在关心报警的部署,不再关系备份怎么部署,备份文件怎么储存,我们还提供专业的数据库诊断服务,全力助你提高系统的可靠性和稳定性。当然数据库服务化后还有很多好处,这里不再一一列举。
我们发现,很多个人或者公司现在选在自建的方式,节约成本的方式只是一时方案,如果公司大了,有些问题就慢慢显露出来,承担较大的法律风险。最近我们推出了5个版本的数据库,包括SQL Server 2012标准版和WEB版,SQL Server 2016的企业版、标准版和WEB版本,其主要的想法是,很多用户根本用不到企业版的高级功能,只需要标准本就可以了,甚至WEB版本就足够了,比如,一个小杂货铺,WEB版本完全够用,确实也省不少钱。企业版和WEB版本的价格差异还是很大的。我们的云化版本价格差异也是很大的。
总之,随着云计算的发展,SQL Server云服务化一定是趋势,提供高效稳定的服务是我们一贯的承诺,也欢迎越来越多的SQL Server使用我们的云服务。把数据库交给我们,我们给你一个完美的体验。
2017年云栖大会SQL Server分论坛: