Cache BuffersLRU Chain闩锁竞争与解决
当用户进程需要读数据到Buffer Cache时或Cache Buffer根据LRU算法进行管理等,就不可避免的要扫描LRU List获取可用Buffer或更改Buffer状态,我们知道,Oracle的Buffer Cache是共享内存,可以为众多并发进程并发访问,所以在搜索的过程中必须获取Latch(Latch是Oracle的一种串行锁机制,用于保护共享内存结构),锁定内存结构,防止并发访问损坏内存中的数据(我们必须认识到对于数据的访问、Bu...
分类:
其他好文 时间:
2014-08-02 15:36:23
阅读次数:
393
1.2 shared pool原理
Shared Pool是Oracle SGA设置中最复杂也是最重要的一部分内容,Oracle通过Shared Pool来实现SQL共享、减少代码硬解析等,从而提高数据库的性能。在某些版本中,如果设置不当,Shared Pool可能会极大影响数据库的正常运行。
在Oracle 7之前,Shared Pool并不存在,每个Oracle连接都有一个独立的Server进程与之相关联,Server进程负责解析和优化所有SQL和PL/SQL代码。典型的,在OLTP环境中,很多代...
分类:
其他好文 时间:
2014-08-02 15:36:03
阅读次数:
354
诊断和解决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.编译器优化介绍:由 于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一 定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软...
分类:
编程语言 时间:
2014-08-02 15:25:23
阅读次数:
242
1.1 buffer pool原理
Buffer Cache是Oracle SGA中一个重要部分,通常的数据访问和修改都需要通过BufferCache来完成。当一个进程需要访问数据时,首先需要确定数据在内存中是否存在,如果数据在Buffer中存在,则需要根据数据的状态来判断是否可以直接访问还是需要构造一致性读取;如果数据在Buffer中不存在,则需要在Buffer Cache中寻找足够的空间以装载需要的数据,如果Buffer Cache中找不到足够的内存空间,则需要触发DBWR去写出脏数据,释放Buff...
分类:
其他好文 时间:
2014-08-02 12:50:33
阅读次数:
337
情况是这样的,我的wordpress并不是放在网站的根目录的,而是放在/blog目录下的,然后在wordpress中设置固定链接的时候,每次都出错,用了网上几个方法都不行,后来在http://codex.wordpress.org/Nginx找到一个解决办法。我正好安装了wp super cache...
分类:
其他好文 时间:
2014-08-02 12:36:03
阅读次数:
207
原文地址:http://blog.csdn.net/wyabc1986/article/details/6989532[举例]目前常用的==========*更新本机中的数据库缓存:sudo apt-get update *查找包含部分关键字的软件包:sudo apt-cache search *安...
分类:
其他好文 时间:
2014-08-02 10:00:23
阅读次数:
293
用缓冲技术提高JSP应用的性能和稳定性之OSchche应用(3)...
分类:
Web程序 时间:
2014-08-01 13:52:11
阅读次数:
317
在Linux下可以使用如下工具查询CPU缓存:
方式1:
$ lscpu
L1d cache: 32K (一级数据缓存)
L1i cache: 32K (一级指令缓存)
L2 cache: 256K (二级缓存)
L3 cache: 8192K (三级缓存)
方式2:
...
分类:
系统相关 时间:
2014-08-01 13:38:51
阅读次数:
376
Java循环声明变量
之前想这样做,但是网上一直搜索不到,下面是我的方式
项目中 // 得到需要查询外表的数量,然后分别创建缓存,插入数据多的时候如果编码在缓存里面,就不需要再去查询数据库了。key:code/value:pk
// 根据“数据来源”有多少非空的 就创建几个,使用 “数据来源字段”+Cache 当cacheMap的key
Map> cacheMap =new ...
分类:
编程语言 时间:
2014-08-01 09:19:11
阅读次数:
243