加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server内核架构剖析

发布时间:2016-01-16 16:39:44 所属栏目:MsSql教程 来源:网络整理
导读:我们做管理软件的,主要核心就在数据存储管理上。所以数据库设计是我们的重中之重。为了让我们 的管理软件能够稳定、可扩展、性能优秀、可跟踪排错、可升级部署
我们做管理软件的,主要核心就在数据存储管理上。所以数据库设计是我们的重中之重。为了让我们 的管理软件能够稳定、可扩展、性能优秀、可跟踪排错、可升级部署、可插件运行,我们往往研发自己的 管理软件开发平台。我们总是希望去学习别人的开发平台(如用友或金蝶或SAP),但我们却总是感叹管 理软件业务处理细节繁多,而数据库管理软件却简单的SELECT、INSERT、DELETE、UPDATE四个命令就搞定 。我们多希望有一天能做出一个架构,也可以这么简单就搞定管理软件。我们往往研究别人的架构,却忘 记了我们身边我们最熟悉的数据库的架构。所以,今天,我想带领大家一起剖析一下数据库的架构,来探 索数据库的架构思想。而我本人呢,只熟悉SQLSERVER这一种数据库产品,所以我就拿SQLSERVER来分析。

在讲SQLSERVER内部原理的之前,我觉得非常有必要向大家介绍一下SQLSERVER的历史。

让我们站在1999年,看看计算机数据库业界到底处于什么状态。

1999年,Oracle已经于1998年9月发布了Oracle 8i(可能中文版在1999年才来到中国)。Oracle 8i支 持用JAVA编写存储过程,支持XML,支持Linux。

1999年1月,SQLSERVER7正式发布。SQLSERVER7重构了整个数据库引擎(相当于重写了SQLSERVER)。 SQLSERVER第一次完整性的支持了行锁(有没有搞错,过去人是怎么使用数据库产品的。1988年,Oracle6 就支持行锁。另外1988年,Oracle就开始研发ERP产品。谁说Oracle是ERP门外汉,可以参考这个)。

看看他们俩的前一个版本。如果你入行比较晚(2000年以后),可能对以下文字更感到惊讶。

1992年,Oracle7发布。有了存储过程、触发器、引用完整性校验、分布式事务处理。(天哪, Oracle7才有了这些东西)。

1995年,SQLSERVER6发布。SQLSERVER6是微软真正意义上的第一个数据库产品(真是爆料,大家没想 到SQLSERVER6才是微软第一个数据库产品,那版本6之前的5、4、3、2、1是怎么度过的)。因为1994年, 微软和Sybase掰了(Sybase是第一个运行于PC上的C/S数据库产品)。微软为了进入数据库产品领域,自 己又没有经验,于是和Sybase一起合作(当时微软是全世界第一大软件公司,微软1986年上市。Sybase有 产品,缺钱。微软缺产品,有钱。于是一拍即合)。直到1994年,微软也不需要Sybase了(已经学会了数 据库技术),Sybase也感觉微软太狼子野心,于是合作分裂。微软开始自己做自己的数据库。

历史说完。我们言归正传。

很多入门级做管理软件的,SQL语句玩的熟练,从子查询到Having到交叉表统计SQL都能做出来,甚至 存储过程能写2000多行,游标、自定义函数、触发器、约束用的眼花缭乱。再入点门,在SQL查询器中可 以使用SQL分析优化索引,用SQL Profile可以跟踪SQL,甚至在性能查看器中监测SQLSERVER内存、CPU、 线程、I/O的运行状态,甚至为自己会使用DBCC而沾沾自喜。

你是如此熟悉SQLSERVER,又是对SQLSERVER如此陌生。

我今天就用架构的角度来给大家分析一下SQLSERVER架构和原理。短短一篇博文肯定只能面上的多一些 ,深一层的可能需要连载数篇文章甚至一块大砖头书才能讲完整。不过,我希望我的博文能够抛砖引玉, 使大家能从一个过去没有想过的角度去看SQLSERVER。

SQLSERVER,作为一个数据库产品,我个人认为,最重要的就是两大块:存储引擎和查询引擎。

其他的日志、事务、锁、索引等等都是围绕他们来工作的。

(编辑:云计算网_泰州站长网)

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

    推荐文章
      热点阅读