加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2014:关系型的能力、NoSql的速度

发布时间:2016-01-16 12:26:17 所属栏目:MsSql教程 来源:网络整理
导读:最近的4到5年以来,微软首次尝试重写在1998年发布的SQL Server版本7所确立的查询执行引擎。重写的目标是在不牺牲关系型数据库特色的前提下,提供类似于NoSQL的
最近的4到5年以来,微软首次尝试重写在1998年发布的SQL Server版本7所确立的查询执行引擎。重写的目标是在不牺牲关系型数据库特色的前提下,提供类似于NoSQL的高速度。

这一次尝试的核心是Hekaton项目,即内存优化表。虽然依然能够通过传统的T-SQL操作对其进行访问,但其内部已经是基于完全不同的技术所实现。这一技术是有意与当今服务器硬件的三大趋势保持一致的。

内存价格不断下降

早期的SQL Server可以通过某些方式将表驻留在内存中,但这一特性后来被证明会造成对性能的损害,随后就被废弃了接近10年的时间。在当时来看,将整张表的内容驻留在容量有限的内存系统中是完全不合理的做法。而现如今,64位处理器已经得到了广泛的应用,而且内存的价格也在不断下降,选择将庞大的数据库保存在内存中就显得更为合理了。

SQL Server 2014:关系型的能力、NoSql的速度

CPU速度停滞不前

虽然CPU的复杂度还在保持上升,但近10年来,它的时钟速度的增加几乎已经停滞不前了。因此要看到线性性能的提升,除了利用缓存的能力之外,也要求所运行的代码具有更高的效率。

SQL Server 2014:关系型的能力、NoSql的速度

在这里,T-SQL曾经的设计决策就能够起到作用了。在目前的设计中,无论是即时的查询或是基于存储过程的查询,都仅仅会被编译为一种中间语言,并且之后会通过解释的方式进行执行,而不是通过即时编译的方式转变为机器代码。虽然这种方式能够接受较高的复杂性,但也付出了降低性能的代价。

这一点在过去还是可以接受的,因为虽然数据加载量在增大,但CPU处理连续数据量的能力也在随之上升。但这一点在如今已经不可行了,微软已经决定要打造一个新的执行引擎,它的实现依赖于完全经过编译的机器代码。

正如我们在之前的一份报告中所指出的一样,新的执行引擎仅支持存储过程。你付出了放弃动态查询的代码,所得到的是经过高度优化的C代码,这些代码是为你所使用的表而专门生成的。

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读