小目标之读懂sql调优—oracle整体架构、内存架构

3 篇文章 0 订阅

本来晚上打算接着读jvm来着,但是发现这本书忘在公司了,就从家里拿了另一本《高性能sql调优精要》的书籍来读了,这本书本来也在待读范围内,毕竟面试时关于数据库的问题也是身为java程序员不能回避的话题,今天和明天就先做这本书的解读,待后天上班时再接着读jvm。

这本书主要以orcale数据库为例,去解析了数据库的理论,解析了数据库的概念。

第一章讲了数据库的整体架构,实例和数据库是不同的两个事物,是数据库运行必备的组件。实例是由服务器的一组内存结构和进程组成,用于支撑和完成数据库的正常运行和操作。

实例包含内存和后台进程、服务进程的组件。每个程序都需要内存供其运行,数据库实例也一样,内存是为了实例运行和数据操作使用。后台进程是用于管理和监控实例运行的一组进程,服务进程是实例创建的满足会话需要的进程,用户会话任务通过服务进程完成。

数据库是一堆文件,存储的数据库的配置和管理信息以及用户数据。这里我大致的理解是数据库和实例的关系类似于java中类与对象的关系。数据库中的文件包含有参数文件(parameter file)、控制文件(control file)、数据文件(data file)、回滚文件(undo file)、临时文件(temp file)、重做日志文件(redo log file)、归档日志文件(archive log file)、警告日志文件(alert log file)、跟踪文件(trace file)。具体用途:参数文件是数据库的配置文件,数据库启动实例时可通过参数文件指定配置,控制文件存储着数据库的物理结构,数据文件存储用户数据,回滚文件存储修改钱数据块的快照,临时文件存储会话私有内存不满足需求时的临时数据,重做日志文件存储近期数据库的修改操作信息,归档日志文件存储数据库历史修改操作信息,警告日志文件存储数据库运行状况信息,跟踪文件存储数据库内部行为信息。

第二章讲了oracle的内存架构,oracle将内存划分为系统全局区(SGA)和程序全局区(PGA)。 系统全局区为所有数据库会话的共享内存区域,包含共享池、数据缓冲、重做日志缓冲、系统全局区相关信息。共享池存储实例的结构和信息,数据缓冲为用户数据的缓冲区,暂存数据块可以提升读写性能,重做日志缓冲作为第一章中重做日志数据的缓存区,可以改善重做日志数据的读写性能,系统全局区相关信息存储全局区的配置信息。 程序全局区为进程私有内存区域,供服务进程存储数据和控制信息,包含会话区和sql工作区。会话区就是为数据库会话分配的内存区域,存储会话变量,会话区在共享服务器模式中也可能因为共享进程被移到系统全局区中。sql工作区功能是为服务进程进行各种内存操作,例如数据排序、构建哈希表、合并位图索引等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值