当前位置: 首页 > news >正文

OCP-042之:Oracle结构体系

1. Oracle结构体系

1.1 概述

1.1.1 版本

版本后缀所代表的含义

i:代表基于Internet架构的数据库,如9i

g:代表基于grid(网格)的数据库,如11g

grid的目的:降低成本,提高服务质量,简化管理

  • Storage Grid:ASM(automatic storage management),继承了LVM技术,Oracle的动态存储空间管理技术,通过软件模拟raid的功能
  • Database Grid:RAC(real application clusters),Oracle的集群解决方案
  • Application Grid:Oracle Streams,流复制技术,用于远距离的容灾,支持同平台和垮平台
  • Grid Control:Enterprise Manager Grid Control,统一数据库管理工具,可以同时登陆多个数据库

c:代表基于cloud(云)架构的数据库,有租户,资源共享等云相关的概念。如12c

1.1.2 基本架构

在这里插入图片描述

安装在操作系统中的数据库分为三大部分:

  1. Instance:一个实例包含了内存和进程,实例的数量是由系统资源和操作系统决定的

SGA:内存结构,一个共享的内存区间,在所有的实例之间共享。数据库启动时操作系统分配给他的内存,操作数据时使用时需要将它从硬盘读取到内存中,提交时保存回硬盘中
后台进程:在操作系统中呈现出来的一系列进程,每一个进程代表一个服务

  1. Database:存储结构,存放在磁盘中的数据库文件。在非集群环境中,数据库和实例是一一对应的;但是在集群环境中,多个实例可以共享一个数据库

  2. User-Server Process:用户在登陆数据库时,服务器会针对用户产生相应的进程,PGA是数据针对这些进程分配的内存资源,PGA是私有的。服务器进程和实例的后台进程信息是存放在PGA中的

SGA+PGA就是数据库需要占用的内存空间

1.2 内存结构

在这里插入图片描述

1.2.2 SGA

SGA全称“System Global Area”,中文意思为“系统全局区”,是ORACLE为实例分配的一组共享缓冲存储区,主要用于存放数据库数据和控制信息,该信息为数据库进程所共享(PGA不能共享的),以实现对数据库数据的管理和操作。
它包含Oracle服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
SGA是一组共享内存结构, 被所有的服务和后台进程所共享。当数据库实例启动时,系统全局区内存被自动分配。当数据库实例关闭时,SGA内存被回收。 SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。

Shared Pool

用来存储最近执行的SQL语句和最近使用的数据字典的数据。

ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;

在这里插入图片描述

Library cache:库高速缓冲池,其中包括了共享的SQL区间,用于存放已经运行的SQL语句以及PLSQL代码,因为已运行的SQL语句是已经经过数据库编译,而且该语句的执行计划也已经存在于数据库中,因此再次运行的时候速度就会很快,再次运行该命令可以使其他的用户。该区间的代码替换采用LRU(List Recently Used)原则,热度分为冷区和热区,刚执行的语句会放在居中位置,后面根据使用频率来调整,使用频率高就会往热区放。新语句会替换掉最冷的一条语句。

Oracle在执行一条SQL语句时,首先要将语句进行编译,确定语法是正确的;然后要生成执行计划,因为Oracle需要知道该语句的执行步骤是什么,一条复杂的语句可能会有多种执行计划,Oracle需要选择最优的,执行计划的生成是非常耗时间的。

Data Dictionary Cache:被使用的数据库定义,即存放有关表、列和其它对象定义及权限。它包括关于数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。在语法分析阶段,Server Process访问数据字典中的信息以解析对象名和对存取操作进行验证。数据字典信息缓存在内存中有助于缩短响应时间。

Database Buffer Cache

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《人人都是产品经理》笔记1:什么是产品?怎么入行?
  • Linux常用基本命令-操作
  • el-select filterable模糊搜索在iOS手机上无法弹出软键盘,解决方案
  • 计算机网络 | 第三章 数据链路层 | 王道考研自用笔记
  • 服务器时区与数据库时区不一致导致时间bug记录
  • Flutter-使用MethodChannel 实现与iOS交互
  • Three.js做了一个网页版的我的世界
  • C++方法封装成dll及C#调用示例
  • Spring Boot + Mybatis Plus实现登录注册
  • UbuntuServer 22.04.4安装GitLab
  • 生成式人工智能 - 本地windows 11 + PyCharm运行stable diffusion流程简述
  • C++类与对象(拷贝与类的内存管理)
  • Ubuntu 22.04 下 CURL 分块上传文件(C++)
  • AIRNet模型使用与代码分析(All-In-One Image Restoration Network)
  • 【小白学Python】自定义图片的生成(二)
  • Android单元测试 - 几个重要问题
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Cumulo 的 ClojureScript 模块已经成型
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Iterator 和 for...of 循环
  • php ci框架整合银盛支付
  • Promise面试题2实现异步串行执行
  • Webpack入门之遇到的那些坑,系列示例Demo
  • Web设计流程优化:网页效果图设计新思路
  • 不上全站https的网站你们就等着被恶心死吧
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 基于webpack 的 vue 多页架构
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 开源SQL-on-Hadoop系统一览
  • 每天10道Java面试题,跟我走,offer有!
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 嵌入式文件系统
  • 微信开放平台全网发布【失败】的几点排查方法
  • 译米田引理
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 数据结构
  • #QT(智能家居界面-界面切换)
  • (4) PIVOT 和 UPIVOT 的使用
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (补充)IDEA项目结构
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (函数)颠倒字符串顺序(C语言)
  • (七)Knockout 创建自定义绑定
  • (三)SvelteKit教程:layout 文件
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)Thymeleaf用法——Thymeleaf简介
  • .net 连接达梦数据库开发环境部署
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作