Oracle实例概述

实例的内存结构:前三项是必须有的,后三项是可选的

1、the database buffer cache:执行SQL语句的区域:用户需要的所有数据都要在这里获得,如果没有就需要先从硬盘拷贝到这个区域中,修改后的数据也先存放在此区域,在特定的时间存入硬盘中;

2、the log buffer

3、the shared pool

4、a large pool:

在共享服务器进程中,会使用到large pool;

并行执行服务也用用到large pool;

一些I/O操作也会用到large pool:比如rman的往磁带上的备份过程;

如果这时没有large pool存在,这些过程就会使用shared pool,这样会造成性能损失;

5、a java pool:我们所写的java代码并不是缓存在javapool中的,而是缓存在shared pool中的;

6、a stream pool

Streams的原理就是从redolog中抽取变更的部分,然后重构这些语句,再将重构的语句在远端的服务器上执行。Stream pool就是为实现上述动作提供的内存

 

在三个必须的内存结构中,只用log buffer是不能动态调整的,并且更改大小需要重启instance才能生效;


如果从redo buffer中写redo logs到磁盘时瓶颈的话,解决方法就是使用RAC,这样就可以有多个LGWR并行执行写操作;

log buffer是是一个静态值,修改它后必须重启instance才能生效,不能动态更改;

 

Shared pool有四个组成部分

1.、the library cache:已解析过的形式存储最近刚刚执行过的代码;它的作用是避免重复解析,节省解析所花时间;

2、the data dictionary cache:存储进行用到的对象的结构定义;

3、the PL/SQL area:存储过程,函数,触发器等pl/sql对象;

4、the SQL query and PL/SQL function resultcache:存储近期已经执行过的语句的结果集,避免重复执行语句;默认情况下,这个功能是不可用的;

 

在Shared pool中使用的算法是LRU(least recently used)

 

SQL代码解析的过程包括:

1、分析:对哪个表执行,它是表,还是同义词、视图等待,它有哪些列,用户是否有权限

2、执行:是按索引进行,还是进行全表扫描;

 

匿名PL/SQL是用户执行的,没有存储在数据字典中的存储过程,它的效率比较低,每次都要动态编译执行;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值