SGA与PGA的区别

news2024/11/16 18:46:51

前几天有被别人问到什么是SGA和PGA,说实在的,之前一直搞分布式,已经基本把单机里面的这两个概念忘记的差不多了,不过当时还是根据自己的一点数据库经验说了点七七八八,后来网上查了一下相关说明,发现自己的理解也大概能对的上,只不过没有那么详细。
下图是一张Oracle的体系结构图,
在这里插入图片描述

PGA

PGA(Process Global Area),是为每个连接到数据库的用户进程保存的内存区。
当用户进程连接到数据库并创建一个对应的会话时,数据库服务进程会为这个用户专门设置一个PGA区,用来存储这个用户会话的相关内容。当这个用户会话终止时,数据库系统会自动释放这个PGA区所占用的内存。
PGA区对数据库的性能有比较大的影响,特别是对于排序操作的性能。所以在必要时合理管理PGA区,能够很大程度上提高数据库的性能。
PGA内部又包括以下几个区域:

  1. 排序区
    当用户需要对数据进行排序时,系统会将要排序的数据保存在PGA中的排序区内,然后在里面排序。因此设置较大的排序区可以提高用户访问数据的效率。

  2. 会话区
    会话区保存了会话所具有的权限、角色、性能统计等信息,通常由数据库系统自我维护。

  3. 堆栈区
    保存绑定变量、会话变量、SQL语句运行时的内存结构等重要信息,通常也由数据库自我维护。

  4. 游标区
    游标区是一个动态的区域,当用户执行游标语句打开游标时,系统会在PGA中创建游标区,关闭游标时时这个区域被释放。创建及释放需要占用一定的系统资源和时间,所以频繁的打开和关闭游标会降低语句的执行性能。

SGA

SGA(System Global Area),系统全局区,是一组共享内存结构。如果多个用户同时连接到同一个实例,那么实例的SGA中的数据将在用户之间共享。因此SGA有时也被称为共享全局区域。
一个实例由SGA进程和其他进程共同组成。数据库在启动实例时自动为SGA分配内存,在关闭实例时操作系统回收内存。每个实例都有自己的SGA。
SGA为读写状态,连接到多进程数据库实例的所有用户都可以读取该SGA中包含的信息,并且在数据库执行期间有多个进程写入SGA。
根据以上架构图,SGA内部还分成了多个小的内存区,各个小内存区存放不同的信息。

  1. 共享池 Shared Pool
    (1)数据字典缓存区 Data Dictionary Cache
    用于存放SQL语句相关的数据文件、表、索引、列、用户、其他的数据对象定义和权限信息等等。
    (2)库缓存区 Library Cache
    存放共享SQL和PLSQL代码。服务器进程在执行语句时,首先会匹配库缓存,如果存在相同语句则无需编译直接使用已编译的执行计划。
    绑定变量不是在编译阶段赋值的,而是在运行阶段赋值的,因此含有绑定变量的SQL语句可以不用重启编译。
    (3)SQL和PLSQL结果缓存

  2. 大池 Large Pool
    大池是可选的内存区,可提供一个大的缓冲区供数据库备份与恢复操作过程使用。数据库的备份恢复、执行具有大量排序操作的SQL语句、并行化的操作时可能需要用到大池。

  3. 数据库缓存区 Database Buffer Cache
    用于缓存当前或最近使用的从磁盘读取的数据块的拷贝,来优化数据库的IO减少物理读写。Oracle依据LRU算法对该内存区域进行block-level的更新。
    (1)脏缓存块
    数据被修改过并且已经commit但还未写入磁盘的数据缓存块,最终会被DBWn进程写入到磁盘并永久保存。
    (2)命中缓存块
    最近正在被访问的缓存块,始终被保留在数据调整缓存中,不会被写入数据文件。
    (3)空闲缓存块
    该缓存没有数据,等待被写入数据。Oracle从数据文件中读取数据后,寻找空闲缓存块,以便写入其中。

  4. Java池 Java Pool
    Java池在数据库中支持JAVA的运行,存放Java代码和Java语句的语法分析表

  5. 流池 Stream Pool
    用于缓存流进程在数据库间移动/复制数据时使用的队列消息。一般从重做日志中提取变更记录的进程和应用变更记录的进程会用到。

  6. 日志缓存 Redo Log Buffer
    比较小的内存区,用来短期存储将写入到磁盘中的重做日志信息。日志缓冲区也是为了减少磁盘IO,减少用户的等待时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现货黄金与白银现货的区别

黄金与白银同为贵金属,二者均在人类货币史上担当过货币的功能,而现货黄金与白银现货作为其最重要的金融衍生品,都具备良好的收益性、流动性和的可操作性,都是比较理想的投资产品。那么和现货黄金和白银现货的区别在哪里呢?小编认…

C++初学者学习笔记

面向对象的程序设计 初步理解 相比较于面向过程的程序设计来说有更多的封装的函数可以使用,相比较来说会比较方便。但是如何去设计整个程序的思路也是需要一定的训练的。 C 简介 C 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言&#xf…

linux系统目录结构

在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。 文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含…

【荐书】C程序设计语言(第二版)

“在大多数人眼中,我是个一事无成、乖僻古怪、令人作呕的人。我毫无社会地位可言,也永远不会有。总之,我是底层人中的底层人。好吧,就算这些看法都完全正确,我也想有那么一天,通过我的作品向他们展示&#…

C++模板(函数模板,类模板)的基本使用与非类型模板参数与模板的特化

C模板模板初阶泛型编程函数模板函数模板概念函数模板格式函数模板的原理函数模板的实例化隐式实例化显式实例化&#xff1a;在函数名后的<>中指定模板参数的实际类型模板参数的匹配原则类模板类模板的定义格式类模板的实例化模板进阶非类型模板参数模板的特化概念函数模板…

【TypeScript】TS与Vue

TypeScript与Vue 文章目录TypeScript与VuedefineProps与TypescriptdefineEmits与Typescriptref与Typescriptreactive与Typescriptcomputed与Typescript事件处理与TypescriptTemplate Ref与Typescript可选链操作符非空断言参考链接&#xff1a;https://vuejs.org/guide/typescri…

【OpenGL学习】texture

纹理 一、什么是纹理&#xff1f; 引用百度百科的定义&#xff1a; 计算机图形学中的纹理既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹&#xff0c;同时也包括在物体的光滑表面上的彩色图案&#xff0c;通常我们更多地称之为花纹。对于花纹而言&#xff0c…

ES6 课程概述⑦

文章目录Vuex_State安装使用State在 Vue 组件中获得 Vuex 状态mapState 辅助函数Vuex_Getter通过属性访问通过方法访问mapGetters 辅助函数Vuex_Mutation在组件中提交 Mutation提交载荷&#xff08;Payload&#xff09;对象风格的提交方式使用常量替代 Mutation 事件类型Mutati…

Spring Boot(五十六):基于Redis的搜索栏热搜功能

1 功能要求 使用SpringBoot和redis实现一个简单的热搜功能&#xff0c;具备以下功能&#xff1a; 搜索栏展示当前登陆的个人用户的搜索历史记录&#xff0c;删除个人历史记录用户在搜索栏输入某字符&#xff0c;则将该字符记录下来 以zset格式存储的redis中&#xff0c;记录该…

Flink DataSet API和DataStream API 对于WordCount的演示

文章目录准备工作Flink DataSet APIFlink DataStream API结论准备工作 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-insta…

如何多人配音一个作品?这3招帮你快速实现

大家平时喜欢听书吗&#xff1f;听书是一种既能释放双眼&#xff0c;又能降低压力的放松方式。那么大家平时在听书的时候&#xff0c;有没有碰到过一些多人配音的小说&#xff1f;大家有好奇过这样的小说是怎么来的吗&#xff1f;今天&#xff0c;教大家多人配音怎么制作的&…

请问想考软考,零基础的话,哪个证书最好考呢

可以直接考中级&#xff0c;软考中级中也有适合零基础报考的&#xff0c;中级的含金量也比初级的高&#xff0c;初级的用途不太大&#xff0c;建议直接中级。 系统集成项目管理工程师&#xff0c;软考中级比较热门的一个科目&#xff0c;零基础的也适合相比较容易通过。 软考…

Fisher确切概率基本原理详解

Fisher确切概率 基本原理 比较两组有效率是否有差异。 在周边合计不变的情况下&#xff0c;计算实际频率变动时的Pi&#xff08;概率&#xff09;。然后计算累积概率&#xff0c;依据检验水平做推断。 累积概率的计算 以a从小到大的概率排序 左侧概率&#xff1a;现有样本…

【SpringCloud17】SpringCloud Alibaba入门简介

1.为什么会出现SpringCloud Alibaba Spring Cloud Netflix项目进入维护模式官网 1.1 什么是维护模式 将模块置于维护模式&#xff0c;意味着 Spring Cloud 团队将不会再向模块添加新功能。我们将修复 block 级别的 bug 以及安全问题&#xff0c;我们也会考虑并审查社区的小型 …

shell处理多盘跑fio(minimal)的结果脚本编写

作为一个专业测试storage的测试人员&#xff0c;除了对服务器&#xff0c;硬盘熟悉之外&#xff0c;还要对测试工具fio特别熟悉才行。如果在OEM或者专门的HDD&SSD厂家测试&#xff0c;会经常看到测试脚本里边&#xff0c;开发喜欢用fio minimal 模式&#xff0c;这样解析lo…

【GD32F427开发板试用】利用SPI驱动ADS8354

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;STY 前言 本文期望通过板载硬件SPI外加DMA传输的方式来实现对全差分同步采样模数转换器ADS8354的控制&#xff0c;并且将采集数据进行初步脉冲…

2.1、进程的定义、组成、组织方式、特征

整体框架 1、进程的定义 程序\color{red}程序程序&#xff1a;就是一个指令序列 早期的计算机&#xff08;只支持单道\color{red}单道单道程序&#xff09; 引入多道\color{red}多道多道程序之后&#xff1a; 为了方便操作操作系统管理&#xff0c;完成各个程序并发执行、 引…

Go map 实现原理

Go map 实现原理 go map 源码路径在&#xff1a; src/runtime/map.gogo 源码结构 |– AUTHORS — 文件&#xff0c;官方 Go语言作者列表 |– CONTRIBUTORS — 文件&#xff0c;第三方贡献者列表 |– LICENSE — 文件&#xff0c;Go语言发布授权协议 |– PATENTS — 文件&…

如何解决Prometheus的数据回填问题

去年10月底的时候&#xff0c;我们的监控系统因为一个偶然的问题&#xff0c;出乎意料地发生了重大的故障&#xff0c;这次故障暴露了当前监控系统存在的一下重大隐患。故障背景及现象我们的监控系统基于Thanos构建&#xff0c;基本架构如下&#xff08;箭头表示数据流向&#…

Docker安装Mysql8.0主从复制

1使用portainer快速创建mysql 2.mysql-master version: 3.3 services:mysql-app:image: mysql:8.0container_name: mysqlrestart: alwaysports:- 3307:3306environment:MYSQL_ROOT_PASSWORD: 123456 # root用户的密码MYSQL_ROOT_HOST: % # 访问权限# MYSQL_USER: test …