调试oracle缓存命中率来增加数据库的效率
下面两篇文章全部是转帖~
原地址:http://www.im80hou.com/html/oracle/2009/0722/824.html
理论:
内存与硬盘的速度差异,从内存中读取数据要比从硬盘中读取数据快10000倍
众所周知,从内存中读取数据要比从硬盘中读取数据快10000倍。这主要是内存与硬盘的速度差异所造成的。为此在Oracle数据库中提出一个数据缓存的概念。简单的说,就是数据库会把用户前几次查询的数据放置在数据缓存中。下次假如其它用户也需要用到类似的数据,则直接中数据缓存中读取数据,而不是从硬盘中读取数据,以提高数据库的性能。这个数据库缓存命中率就是来评价缓存应用效率的一个指数,它是指那些不用从硬盘上无力操作的数据块比例。
一、 提高数据缓存命中率对数据库性能的影响。
在Oracle数据库中,有很多因素为影响到数据库的缓存命中率。不过根据笔者的经验,笔者认为主要影响缓存命中率的有三个因素,分别为连接、索引与数据缓存的大小。表与表之间的连接或者索引设置的不当的话,都会降低数据缓存的命中率。不过表与表之间的连接、索引等等对数据库性能的影响,是一个比较综合的影响,为此笔者不在这里做过多的阐述。以后若有计划的话,笔者会把他们分开来详细讲述。笔者今天要谈的是,假如调整数据缓存的大小来提高这个数据库缓存命中率。
在Oracl初始化参数文件中,有一个参数叫做DB_CACHE_SIZE。顾名思义,这个参数主要是用来设置数据库缓存大小的。也许有人会讲,把这个参数设置越大越好,如此就可以提高数据缓存命中率。这个说法是不科学的,至少是不全面的。假如把这个参数设置的太大,则系统在切换后就很可能会莫名其妙的罢工;而若这个参数设置的太小的花,则管理员无论如何优化数据库系统,其性能都会十分的有限,由于数据库没有足够的数据缓存来处理相关的操作。所以从这个角度讲,根据实际情况为数据库设置合适的缓存,是对数据库进行其它优化操作的前提。
假如不考虑其它因素(如索引、连接)的影响,则一般情况下,假如这个参数设置的比较低的话,那么最近使用得数据就会被最近一次查询的数据所覆盖掉。如此的话,假如另外一个查询需要重新调用这些被覆盖的数据,则就必须重新从服务器的硬盘中读取相关的数据。此时就会极大的降低数据库查询的效率。
显然,假如数据库缓存命中率降低,会影响数据库的性能,特别是查询作业的性能。那么这个影响的程度到底有多大的?是否值得数据库管理员花大力气去调整这个参数呢?笔者个人
相关文档:
外键约束保证参照完整性。外键约束限定了一个列的取值范围。一个例子就是限定州名缩写在一个有限值集合中,这个值集合是另外一个控制结构——一张父表
下面我们创建一张参照表,它提供了完整的州缩写列表,然后使用参照完整性确保学生们有正确的州缩写。第一张表是州参照表,State作为 ......
http://tianzt.blog.51cto.com/459544/171759 仅仅供自己学习之用
此文从以下几个方面来整理关于分区表的概念及操作:
1.表空间及分区表的概念
2.表分区的具体作用
3 ......
原链接:http://www.oracle.com/webapps/dialogue/dlgpage.jsp?p_ext=Y&p_dlg_id=7731619&src=6817982&Act=4&sckw=APACMK09050910MPP005.GCM.8074.110
能否在第一时间
获得新战略的反馈意见?
能否通过管理模型
来预测业务数据?
......
【实现步骤】
1. 创建表blog_info, 具有ID和title两个字段, 其中ID将设置为自动增长列;
2. 创建序列:
create sequence sq_blog_info
start with 1
increment by 1
nomaxvalue
nocycle
......