一、Oracle学习笔记

news2024/12/26 23:48:46

 

1.1.1实例的概念
实例是一组内存结构和后台进程的集合。
oracle适用于大型的应用系统
1.1.2实例的构成
1.实例中的这部分内存结构叫做系统全局区(SGA):存储数据库中的数据、存储数据字典的信息、重做日志、经过解析的SQL代码等
一个实例只有一个SGA:SGA中的数据可以在多个用户进程之间共享;
SGA由若干个缓存和缓冲池构成,不同类型的数据存储在不同的缓存和缓冲池中。
通过在参数文件中为各个缓存和缓冲池分别指定大小,可以确定SGA的大小
2.程序全局区(PGA):当用户访问数据库时,实例为用户进程启动一个服务器进程,并分配一段内存区,用来保护用户进程的私有信息和控制信息
SGA是所有用户进程共享的:只要实例被启动,无论是否有用户访问数据库,SGA都存在
PGA是用户进程私有:用户进程发出请求,实例分配PGA,进程结束,PGA释放。
3.内存结构包括SGA和PGA两部分
内存空间存储了:
程序代码
缓冲数据
与会话有关的信息
与进程间通信有关的信息
SGA中主要包含以下类型的内存结构:
数据库高速缓存
重做日志缓冲区
共享区
java池
大池
查看SGA大小:show sga
1.2.1数据库高速缓存
数据库高速缓存是SGA中的一段存储区域逻辑读:直接在数据库高速缓存对数据进行访问,并将处理结果返回给用户,这次数据访问叫做:“命中”
物理读:服务器进程将数据从数据文件的数据块中读到数据库高速缓存中,然后在数据库高速缓存对数据进行访问,这次数据访问叫做:“未命中”
直接在数据库高速缓存访问数据,要比从数据文件中读数据快得多
访问数据的命中率越高,数据库的性能就越高
数据库性能优化:提高逻辑读的比重
数据库高速缓存的大小通过初始化参数DB_CACHE_SIZE来指定
提高数据访问命中率最直接的方法是增加数据库高速缓存的大小(不能无限增加,受物理内存大小的限制)
数据块:(如果主要执行select语句可以设置大一些,修改语句就小一些)数据文件被划分为许多大小相同的数据块
是Oracle进行读写的基本单位
提高了数据库服务器的吞吐量
由初始化参数DB_BLOCK_SIZE指定
例:
DB_CACHE_SIZE=25165824缓冲区总的大小为25165824字节,及24mb
DB_BLOCK_SIZE=8192每个缓冲区大小为8192字节,就是8kb
所以缓冲区的个数为25165824/8192=3072个
缓冲区分为:空闲缓冲区存放的是由SELECT命令检索的数据,而且这样的数据没有被修改过
存放的是由DML命令处理过的数据,而且这样的数据已经被写入数据块中
用来存放用户即将访问的数据(空闲缓冲区的内容与对应数据库中的内容完全一致)
脏缓冲区执行了INSERT\UPDATE\DELETE命令
数据修改之后还没有写入数据块,这时缓冲区中的内容与数据块不一致
数据必须写入数据文件的数据块中,这个任务由后台进程DBWR完成
写入后,脏缓冲区又成为空闲缓冲区
忙缓冲区指正在访问的缓冲区
两个用户进程不能同时访问同一个忙缓冲区所以oracle采用LRU算法,确保数据访问的命中率
非标准数据块:2kb缓存由2kb的缓冲区组成DB_2K_CACHE_SIZE=48m
4kb缓存由4kb的缓冲区组成
8kb缓存由8kb的缓冲区组成
等等
命令显示16kb缓冲区大小:SHOW PARAMETER DB 16K CACHE SIZE NAME TYPE VALUE
1.2.2重做日志缓存区
重做日志是对用户事物所产生的记录。
通过重新日志能够重新产生数据,它是确保数据安全的一种重要方法。
当用户执行dml时,会将操作记录在重做日志缓冲区中,然后采取修改相应的数据
重做日志缓冲区的大小由初始参数LOG_BUFFER指定
1.2.3共享池
为了提高数据库的性能,Oracle在SGA中开辟了一个共享池,用于存放与SQL语句的执行有关的信息。
共享池的组成:数据字典高速缓存存放最近访问的数据字典的信息,在查询相关的数据字典时,可以直接在数据字典缓存中执行
库高速缓存存放最近执行的SQL命令的相关信息。(命令文本、解析结果、执行计划)已经存储过了就会直接提取出来
服务器结果缓存
共享池的大小由初始参数SHARED_POOL_SIZE来指定
1.2.4java池
java池是sga中两段可选的存储区域。
java池的大小由初始参数JAVA_POOL_SIZE来指定
SELECT * FROM V$SGASTAT WHERE pool='java pool'
1.2.5PGA(程序全局区)
包含了服务器进程的数据和控制信息
当服务器进程启动时,数据库服务器为它分配一段PGA,这个PGA只能由当前服务器进程访问。
PGA包含:(1)私有SQL区在私有SQL区中保存了SQL语句的绑定信息和运行时的内存结构
当用户执行SQL语句时,将显式或隐式地使用游标,每个游标都有一段私有SQL区
私有SQL区的位置与会话的连接方式有关
(2)会话内存区会话内存区保存会话变量和其他会话信息
“SQL”工作区:复杂的查询区域大小可控制
 WORKAREA_SIZE_POLICY(AUTO/MANUAL)将SQL工作区的管理方式设置为自动
PGA_AGGREGATE_TARGET指定sql工作区的大小

常用的后台进程及其功能:
进程名称功能
DBWR将数据库高速缓存中的脏缓冲区内容写入数据库
LGWR将重做日志缓冲区中的内容写入重做日志文件
CKPT发出检查点。维护数据文件、控制文件和重做日志文件的一致状态
SMON在数据库服务器重新启动时进行实例恢复
PMON当用户进程执行失败时,释放服务器进程所占用的资源
ARCH对重做日志进行归档
查看在后台正在运行的进程:SELECT name FROM v$bgprocess WHERE paddr<>'00'

 

1.3.1 DBWR(数据库写进程)
功能:将数据库高速缓存中的脏缓冲区内容写入数据文件中的数据块。
默认值启动一个,但是可以启动多个
初始化参数DB_WRITER_PROCESSES最多可以启动20个
不是越多越好
原则不要超过CPU的数目
DBWR在以下几种情况执行写操作:
1.固定的时间间隔
2.当数据库服务器发出检查点时
3.当脏队列的缓冲区数目达到一定值时(数据库高速缓存中不能有太多的脏缓冲区)
4.空闲缓存区数量不能满足要求,就会进行写操作,部分脏缓冲区将重新成为空闲缓冲区
1.3.2LGWR(日志写进程)
功能:将重做日志缓冲区中的重做日志写入重做日志文件
LGWR被启动执行的时机:
1.固定的时间间隔
2.用户执行了COMMIT操作
3.重做日志缓冲区已经有1/3的空间被写满
4.DBWR将脏缓冲区写入数据文件之前

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

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

相关文章

QT作业4

实现一个闹钟&#xff0c;当输入时间后&#xff0c;点击启动到达时间后循环播报三遍&#xff0c;便签内容 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTextToSpeech> //文本转语言类 #include <QTimerEvent> //定…

EasyV易知微助力智慧城市未来趋势发展——数字孪生城市

“智慧城市的未来趋势就是数字孪生”——《基于数字孪生的智慧城市》 城市数字化管理、智慧城市和数字孪生城市的发展是相互促进、逐步深化的过程。 城市数字化管理作为起点&#xff0c;奠定了信息化、数据化的基础&#xff1b;而智慧城市则将数字城市管理进一步升级&#xff…

什么是防抖与节流?应用场景举例

防抖节流如何处理防抖与节流 防抖节流防抖例子节流例子Vue Axios全局接口防抖、节流封装实现 小结 防抖 防抖&#xff1a;触发高频事件后n秒内函数只会执行一次&#xff0c;如果n秒内高频事件再次被触发&#xff0c;则重新计算时间 应用场景&#xff1a; 提交按钮、用户注册…

时间序列预测 — CNN-LSTM实现多变量多步光伏预测(Tensorflow)

目录 1 数据处理 1.1 导入库文件 1.2 导入数据集 1.3 缺失值分析 2 构造训练数据 ​3 模型训练 3.1 CNN-LSTM网络 3.2 模型训练 4 模型预测 专栏链接&#xff1a;https://blog.csdn.net/qq_41921826/category_12495091.html 1 数据处理 1.1 导入库文件 import scip…

数据库系统相关概念

数据&#xff1a;描述事务的符号记录。 数据库(DB)&#xff1a;按一定的数据模型组织&#xff0c;描述和存储在计算机内的&#xff0c;有组织的&#xff0c;可共享的数据集合。 数据库管理系统(DBMS)&#xff1a;位于用户和操作系统之间的一层数据管理软件。主要功能包括&#…

(C++)最大连续1的个数--滑动窗口

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://le…

【LeetCode题目拓展】第207题 课程表 拓展(拓扑排序、Tarjan算法、Kosaraju算法)

文章目录 一、拓扑排序题目二、题目拓展1. 思路分析2. tarjan算法3. kosaraju算法 一、拓扑排序题目 最近在看一个算法课程的时候看到了一个比较好玩的题目的扩展&#xff0c;它的原题如下&#xff1a; 对应的LeetCode题目为 207. 课程表 这个题目本身来说比较简单&#xff…

C# WPF上位机开发(增强版绘图软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们写过一个绘图软件&#xff0c;不过那个比较简单&#xff0c;主要就是用鼠标模拟pen进行绘图。实际应用中&#xff0c;另外一种使用比较多的…

【flutter对抗】blutter使用+ACTF习题

最新的能很好反编译flutter程序的项目 1、安装 git clone https://github.com/worawit/blutter --depth1​ 然后我直接将对应的两个压缩包下载下来&#xff08;通过浏览器手动下载&#xff09; 不再通过python的代码来下载&#xff0c;之前一直卡在这个地方。 如果读者可以…

C++11 【初识】

C11简介 1.在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0c;使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。 2.不过由于C03(TC1)主要是对C98标准中的漏洞进行修复&#xff0c;语言的核心部分则没有改动&#xff0c;因此人们习惯性的把两个标准合…

【vtkWidgetRepresentation】第十期 vtkAngleRepresentation标注角度

很高兴在雪易的CSDN遇见你 前言 本文分享VTK中的角度标注,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO AngleRepresentation 目录 前言 1. vtkAngleRepresentatio

Windows使用selenium操作浏览器爬虫

以前的大部分程序都是操作Chrome&#xff0c;很少有操作Edge&#xff0c;现在以Edge为例。 Selenium本身是无法直接控制浏览器的&#xff0c;不同的浏览器需要不同的驱动程序&#xff0c;Google Chrome需要安装ChromeDriver、Edge需要安装Microsoft Edge WebDriver&#xff0c…

直面双碳目标,优维科技携手奥意建筑打造绿色低碳建筑数智云平台

优维“双碳”战略合作建筑 为落实创新驱动发展战略&#xff0c;增强深圳工程建设领域科技创新能力&#xff0c;促进技术进步、科技成果转化和推广应用&#xff0c;根据《深圳市工程建设领域科技计划项目管理办法》《深圳市住房和建设局关于组织申报2022年深圳市工程建设领域科…

二叉搜索树基本概念与实现

目录 基本概念 模拟实现 完整代码 基本概念 根的左节点比根小 根的右节点比根大 左右子树都满足 搜索二叉树的中序遍历是升序 模拟实现 完整代码 #pragma oncetemplate<class K> struct BSNode {BSNode<K>* _left;BSNode<K>* _right;K _val;BSNode(c…

【C语言程序设计】循环结构程序设计

目录 前言 一、程序设计第一题 二、程序设计第二题 三、程序设计第三题 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da…

1.函数递归起(复习)

1.debug版本可以调试,realse版本不能调试 2.在realse版本中,代码已经得到了优化(编译器可能会自作主张地对代码进行优化),在大小和速度上都是最优的 3.ctrl F5 是开始执行不调试 4.设置好断点后,用F5到达该断点,相当于是到达了该断点的那个位置程序就先停止运行了 5.设立断…

Linux shell编程学习笔记35:seq

0 前言 在使用 for 循环语句时&#xff0c;我们经常使用到序列。比如&#xff1a; for i in 1 2 3 4 5 6 7 8 9 10; do echo "$i * 2 $(expr $i \* 2)"; done 其中的 1 2 3 4 5 6 7 8 9 10;就是一个整数序列 。 为了方便我们使用数字序列&#xff0c;Linux提供了…

UDS DTC状态掩码/DTC状态位

文章目录 简介用途依赖知识1、测试&#xff08;test&#xff09;2、操作循环&#xff08;operation cycle&#xff09;3、老化&#xff08;aging&#xff09; DTC状态位1、Bit 0&#xff1a;Test Failed2、Bit 1&#xff1a;Test Failed This operation cycle3、Bit 2&#xff…

【大数据】Hadoop生态未来发展的一些看法

大数据的起源 谷歌在2003到2006年间发表了三篇论文&#xff0c;《MapReduce: Simplified Data Processing on Large Clusters》&#xff0c;《Bigtable: A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储…

基于51单片机的语音识别控制系统

0-演示视频 1-功能说明 &#xff08;1&#xff09;使用DHT11检测温湿度&#xff0c;然后用LCD12864显示&#xff0c;语音播放&#xff0c;使用STC11l08xe控制LD3320做语音识别&#xff0c; &#xff08;2&#xff09;上电时语音提示&#xff1a;欢迎使用声音识别系统&#xf…