SQL Server 2012笔记分享-5:理解SQLOS

描述

SQLOS是一个单独的应用层,它位于SQLServer数据库引擎的最低层,SQLServer和SQL Reporting Services都是在顶层运行。SQLOS介于windows操作系统和SQL server之间。

为什么开发SQLOS

SQLServer的早期版本在存储引擎和实际操作系统之间使用瘦接口层,通过该接口层,SQLServer可以调用操作系统来执行内存分配,计划资源,线程和工作管理,以及同步对象。不过,SQLServer中需要访问这些接口的服务可以位于引擎的任何部分。SQLServer需要管理内存,计划程序,同步对象等,因此任务变得越来越复杂。于是Microsoft公司设计了单独的应用层来管理所有特定于SQLServer的操作系统资源,而不是让引擎的每个部分支持增加的功能。

架构图

上图术语解释

Memory Manager内存管理

Scheduling计划

synchronization同步

hosting API主机API接口

deadlock monitor 死锁监控

resource monitor 资源监控

lazy writer延迟写入

scheduler monitor 监控调度

storage engine 存储引擎

buffer pool缓冲区

query compilation and execution engines查询编译和执行引擎

protocols 协议

external components外部组件

学习资源

SQLSERVER独特的任务调度算法"SQLOS"

http://www.cnblogs.com/lyhabc/archive/2012/10/17/2728724.html

SQLOS - unleashed

http://blogs.msdn.com/b/slavao/archive/2005/02/05/367816.aspx

Set of new features in SQL Server 2005 enabled by SQLOS 

http://blogs.msdn.com/b/slavao/archive/2006/04/12/575185.aspx

SQL Server 2008 SQLOS

http://blogs.technet.com/b/josebda/archive/2009/03/30/sql-server-2008-sqlos.aspx

SQL Server 2012笔记分享-5:理解SQLOS,布布扣,bubuko.com

时间: 2024-10-11 05:15:01

SQL Server 2012笔记分享-5:理解SQLOS的相关文章

SQL Server 2012笔记分享-4:理解SQL server实例

每个单独的SQL server实例都有一个windows进程:sqlservr.exe,一个windows下能安装多个实例,多个实例会有多个sqlservr.exe进程. 一个SQL实例在后台对应一个服务,如果多个应用程序放在一个实例里,如果某个应用开发的程序有问题,比如死循环,会导致服务停止,从而导致所有数据库无法工作.可以采用多实例分开方式. 一个服务器上可以装多个实例,标准版(16个)和企业版(50个)支持的实例数量不同. SQL server实例的类型 (一)默认实例和命名实例 1.服务

SQL Server 2012笔记分享-6:理解内存管理

内存管理 – SQL Server 2005/2008/2008r2 SQL Server 2012以前的版本(SQL 2005/2008/2008R2),有single page allocator 和multi page allocator.也就是说,如果申请的内存是8k以内的,就会有单页分配器分配,而大于8kb的内存请求,使用multi page 分配器来管理.如图所示. 使用select * from sys.dm_os_memory_clerks查询memory clerk,会发现si

SQL Server 2012笔记分享-22:理解备份模式与恢复模式

SQL Server 备份和还原组件为保护存储在 SQL Server 数据库中的关键数据提供了基本安全保障. 为了最大限度地降低灾难性数据丢失的风险,您需要定期备份数据库以保留对数据所做的修改. 规划良好的备份和还原策略有助于防止SQL Server 2012笔记分享-22:理解备份模式与恢复模式数据库因各种故障而造成数据丢失. 通过还原一组备份,然后恢复数据库来测试您的策略,以便为有效地应对灾难做好准备. ===========================================

SQL Server 2012笔记分享-8:理解包含数据库

包含数据库的四大核心特点 独立于其他数据库以及独立于承载数据库的 SQL Server 实例的一种数据库. 很多用于描述数据库的元数据都在该数据库中维护. 使用相同的排序规则定义所有元数据. 数据库可执行用户身份验证,因此减少了对 SQL Server 实例的登录名的数据库依赖关系. 包含数据库解决的问题 在你将SQL Server 2012包含数据库隔离之后,你就可以轻易将其从一个SQL Server实例迁移至另一个SQL Server实例,而不必迁移一组SQL Server登录.此包含数据库

SQL Server 2012笔记分享-9:理解列存储索引

优点和使用场景 SQL Server 内存中列存储索引通过使用基于列的数据存储和基于列的查询处理来存储和管理数据. 列存储索引适合于主要执行大容量加载和只读查询的数据仓库工作负荷. 与传统面向行的存储方式相比,使用列存储索引存档可最多提高 10 倍查询性能,与使用非压缩数据大小相比,可提供多达 7 倍数据压缩率. SQL 2012和SQL 2014列存储索引的比较 在SQL server 2012中,一旦启用了列存储索引,将不能够对已启用列存储索引的数据存储执行变更写入操作,也就是说列存储索引适

SQL Server 2012笔记分享-10:理解数据压缩

关键概念 配置数据压缩可以通过SSMS和T-SQL语句两种方式来实现. 表和索引压缩 对于行存储表和索引,使用数据压缩功能可帮助减小数据库的大小. 除了节省空间之外,数据压缩还可以帮助提高 I/O 密集型工作负荷的性能,因为数据存储在更少的页中,查询需要从磁盘读取的页更少. 但是,在与应用程序交换数据时,在数据库服务器上需要额外的 CPU 资源来压缩和解压缩数据. 对于列存储表和索引,所有列存储表和索引始终使用列存储压缩,并且用户无法对此进行配置. 在您能够付出额外的时间和 CPU 资源来存储和

SQL Server 2012笔记分享-51:理解系统数据库恢复

下图是一个很重要的表格,详细描述了系统数据库的备份需求,支持的恢复模式和还原的选项. master数据库:需要备份,需要在单用户模式下恢复 model数据库:需要备份,恢复数据库的方式为T3608 trace flag msdb数据库:需要备份,恢复模式默认为简单,恢复数据库的方式和恢复普通数据库一样,没有特殊要求 tempdb数据库:不需要备份,因为在实例启动的时候tempdb会重建:     详细的步骤可以参考 http://msdn.microsoft.com/zh-cn/library/

SQL Server 2012笔记分享-46:如何快速学习T-SQL语句

对于初学者来说,T-SQL语句的编写一直是个难题,初学者还是习惯使用图形界面来做相关的SQL方面的维护工作.但是在一个稍微复杂大型的SQL场景中,如果我们能够快速的掌握和理解SQL语句的编写和使用,那么会使我们的运维工作达到事半功倍的效果. 其实对于SQL server 2012来说,本身就提供了很多途径来帮助初学者获取日常管理任务的对应T-SQL脚本.下面我们来举几个快速获取T-SQL脚本的例子. ================================================

SQL Server 2012笔记分享-54:数据库文件管理1

(一)添加文件 可以在线执行,不影响数据库使用 ,如图. 添加完成后,如图所示. 也可以通过脚本的形式来添加,如图. (二)删除文件 可以在线执行,不影响数据库使用 . 只有当文件中的实际使用空间为空时才能被成功执行 . (三)移动文件到不同的磁盘路径下 必须先将数据库脱机,将导致数据库暂时不可用 详情参考:http://msdn.microsoft.com/zh-cn/library/ms345483.aspx 若要将移动数据或日志文件作为计划的重定位的一部分,请执行下列步骤: 1. 运行以下