关于SQLServer2005的学习笔记(二)——体系结构(一)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
关于SQLServer2005 的学习笔记(二)——体系结构一
SQLServer2005  引擎组件
首先让我们先来看看  SQL Server2005  的引擎组件,  SQLServer2005  有四大组件:协议、关系引擎、存储引擎和 SQLOS 。
 
协议层接收来自于用户的请求(查询、更改、删除、创建表等等操作)并把它们转换成关系引擎能够识别的形式。它还能够获取任意查询、状态信息、错误信息的结果,然后把这些结果转换成客户端能够理解的性,最后再返回客户端。这一层的意义在于是应用程序访问 SQL Server 的接口。
关系引擎层能够接收 SQL 批处理,以及决定如何处理。它能够解析、编译和优化请求并检查批处理的执行过程,对于所需的数据会发送数据请求给存储引擎。这一层的主要是解析、编译和优化,生成语法树,并与存储引擎进行交互。
存储引擎则负责管理 所有的数据访问,包括基于事务的命令和大批量操作。这些操作包括备份 、批量插入和某些数据库 一致性检查。根据图上所示,主要是实现数据的访问、数据的缓存、锁的管理等操作。
SQLOS 则可以理解为 SQL Server2005 的操作系统,主要负责处理与操作系统之间的工作,如何进行内存分配、死锁检查、 I/O 操作等;很难说的清楚 SQLOS 是 SQLServer 自己独有的处理机制呢,还是调用 OS 来完成相关处理的。
 
SQLServer2000 引擎结构
我们再回头看看 SQLServer2000 的组件关系,在 SQLServer2000 联机帮助中基本上缺乏相关 detail 的体系架构图,该图主要也是描述了 SQLServer2000 中各个主要组件之间的层次和调用关系;而且我对 SQLServer2000 的体系结构也缺乏深刻认识,再次不做详述。
 
Oracle  体系架构
对于  Oracle  而言,  Oracle  并没有提供一个比较全面的组件架构,而是认为  Oracle  就是数据库和实例的集合,当然我们也可以把  SGA  各个组成部分、  Oracle  各种进程、各种数据库文件视为其组件。实例是由  SGA    Oracle  进程构成的。每一个运行的  Oracle  数据库都与一个  Oracle  实例关联。  Oracle  数据库使用内存结构和进程来管理、访问数据库。所有内存结构都存在于构成数据库服务器的计算机的主存中。进程指的是在这些计算机内存中运行的作业。进程被定义为“控制线程”或操作系统中可以运行一系列步骤的一种机制
实际上从总体结构上看, SQLServer2005 也是基于实例和关系数据库的集合,即通过每一个实例来管理若干数据库( Oracle 和 SQL Server 的数据库是概念不同的,从 Oracle 角度而言, SQL Server 的数据库概念比较怪异,理论上应该与 Oracle 的逻辑概念表空间是等效的),这些数据库总的来说都是为了满足某个应用需要和业务逻辑而组合起来的一个完整的应用,而每个数据库又是一个相对独立的业务逻辑单位,但他们是为了实现一个共同的目标,因此也不大适合进行分割成若干实例。
SQL Server2005 的引擎组件更注重的是数据库处理过程中的依次顺序,实际上从实例角度而言,两者可以说是类似的,比如都具备数据缓冲区、字典缓冲区、日志缓冲区、各种数据库进程或线程(数据库读写进程、日志读写进程、检查点)







本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/310466,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
SQL 存储 缓存
SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)
原文:SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分) 为了缩小读取操作所涉及范围,本文首先着眼于简单的SELECT查询,然后引入执行更新操作有关的附加过程。
1152 0
|
SQL 存储 缓存
SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第2部分)
原文:SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第2部分) 计划缓存(Plan Cache) 如果SQL Server已经找到一个好的方式去执行一段代码时,应该把它作为随后的请求重用,因为生成执行计划是耗费时间且资源密集的,这样做是有有意义的。
1084 0
|
SQL 缓存 监控
SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第3部分)(完结)
原文:SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第3部分)(完结) 一个简单的更新查询 现在应该知道只读取数据的查询生命周期,下一步来认定当你需要更新数据时会发生什么。
1113 0