诊断和解决ORA-04031 错误
Shared Pool的主要问题在根本上只有一个,就是碎片过多带来的性能影响。
1.2.7.1 什么是ORA-04031错误
当尝试在共享池分配大块的连续内存失败(很多时候是由于碎片过多,而并非真是内存不足)时,Oracle首先清除共享池中当前没使用的所有对象,使空闲内存块合并。如果仍然没有足够大的单块内存可以满足需要,就会产生ORA-04031错误。
如下一段伪代码来描述04031错误的产生:
Scan free lists --扫描Free...
分类:
其他好文 时间:
2014-08-02 15:34:23
阅读次数:
317
1.1 buffer pool原理
Buffer Cache是Oracle SGA中一个重要部分,通常的数据访问和修改都需要通过BufferCache来完成。当一个进程需要访问数据时,首先需要确定数据在内存中是否存在,如果数据在Buffer中存在,则需要根据数据的状态来判断是否可以直接访问还是需要构造一致性读取;如果数据在Buffer中不存在,则需要在Buffer Cache中寻找足够的空间以装载需要的数据,如果Buffer Cache中找不到足够的内存空间,则需要触发DBWR去写出脏数据,释放Buff...
分类:
其他好文 时间:
2014-08-02 12:50:33
阅读次数:
337
ORACLE数据库所使用的内存主要涉及到两个方面:PGA和SGA。
1.1 PGA管理
PGA指的是程序全局区(Program Global Area),是服务器进程(Server Process)使用的一块包含数据和控制信息的内存区域,PGA是非共享的内存,在服务器进程启动或创建时分配(在系统运行时,排序、连接风操作也可能需要进一步的PGA分配),并为Server Process排他访问,所以PGA中的数据结构并不需要通过latch来保护;
1.2 什么是PGA
进程的创建通常有两种模式:专用...
分类:
数据库 时间:
2014-07-28 00:19:19
阅读次数:
296
1调优设计架构设计(RAC/单机)、应用设计(模块设计、E-R模型设计)2调优应用代码调优、应用存储对象调优3条用内存数据高速缓存区、共享池、重做日志缓存区、大池4、调优I/ORAID模式、文件系统与裸设备、存储缓存、表空间数据文件划分、存储对象分布等5、调优竞争回滚段、Lock \Latch
分类:
数据库 时间:
2014-06-17 12:56:20
阅读次数:
293
手动模拟获取latch
随意dump一个latches结构文件:
SQL> oradebug dump latches 10
ORA-00074: no process has been specified
SQL> oradebug setmypid
Statement processed.
SQL> oradebug dump latches 10
Statement pro...
分类:
其他好文 时间:
2014-06-11 06:25:18
阅读次数:
328
数据块在buffer cache存放是以linked list方式存放的。当一个session想要访问/修改buffer cache的block,首先需要通过hash算法检查该block是否存在于buffer cache中,检查相同的SQL语句是否存在于library cache中也是通过hash算法实现的。要判断block是否存在于buffer cache中,就需要扫描linked list(此处都是串行的,不能并发),获取block的信息。而扫描linked list必须获得一个latch,防止并发对l...
分类:
其他好文 时间:
2014-06-08 15:31:26
阅读次数:
197
SR latch D latch D filp-flop
SR Latch
典型的SR 触发器就长上面那样啦
不要以为简单,酒吧 S R Q Q’ 之间的相对位置关系记错了!
组成的元素很简单——或非门,但是实现的功能却很重要
SR是两个输入端口,Q 和 Q' 是输出端口
不要慌...
分类:
其他好文 时间:
2014-06-02 23:00:20
阅读次数:
572
JK latch
今天无比蠢逼的去问曾哥JK触发器的问题,其实我心里是知道的,真正的答案就在那个实现的电路图里面,但是我就知道懒,不想去探究它的内部实现,只想知道它的外部特性,以至于我觉得。。。反正很不好。这种菜菜的问题,搬去问硬件牛。。。o(︶︿︶)o 唉
其实这也反应出一个问题,对于不是很感兴趣的问题...
分类:
其他好文 时间:
2014-06-02 12:24:24
阅读次数:
191
Warning: Latch
audio_deal:audio_deal_inst|val_vrefl[2] has unsafe behavior Warning: Ports D and
ENA on the latch are fed by the same signal audio_dea....
分类:
其他好文 时间:
2014-05-30 16:23:13
阅读次数:
843
最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆。
每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合。假设:3个人在不同的地方上班,必须等到3个人到场才能吃饭,用程序如何实现呢?
作为一名资深屌丝程序猿,开始写代码实现:
package com.zhy.concurrency.latch;
public...
分类:
编程语言 时间:
2014-05-24 22:29:34
阅读次数:
262