易截截图软件、单文件、免安装、纯绿色、仅160KB

调试oracle缓存命中率来增加数据库的效率


下面两篇文章全部是转帖~
原地址:http://www.im80hou.com/html/oracle/2009/0722/824.html
理论:
内存与硬盘的速度差异,从内存中读取数据要比从硬盘中读取数据快10000倍
众所周知,从内存中读取数据要比从硬盘中读取数据快10000倍。这主要是内存与硬盘的速度差异所造成的。为此在Oracle数据库中提出一个数据缓存的概念。简单的说,就是数据库会把用户前几次查询的数据放置在数据缓存中。下次假如其它用户也需要用到类似的数据,则直接中数据缓存中读取数据,而不是从硬盘中读取数据,以提高数据库的性能。这个数据库缓存命中率就是来评价缓存应用效率的一个指数,它是指那些不用从硬盘上无力操作的数据块比例。
  一、 提高数据缓存命中率对数据库性能的影响。
  在Oracle数据库中,有很多因素为影响到数据库的缓存命中率。不过根据笔者的经验,笔者认为主要影响缓存命中率的有三个因素,分别为连接、索引与数据缓存的大小。表与表之间的连接或者索引设置的不当的话,都会降低数据缓存的命中率。不过表与表之间的连接、索引等等对数据库性能的影响,是一个比较综合的影响,为此笔者不在这里做过多的阐述。以后若有计划的话,笔者会把他们分开来详细讲述。笔者今天要谈的是,假如调整数据缓存的大小来提高这个数据库缓存命中率。
  在Oracl初始化参数文件中,有一个参数叫做DB_CACHE_SIZE。顾名思义,这个参数主要是用来设置数据库缓存大小的。也许有人会讲,把这个参数设置越大越好,如此就可以提高数据缓存命中率。这个说法是不科学的,至少是不全面的。假如把这个参数设置的太大,则系统在切换后就很可能会莫名其妙的罢工;而若这个参数设置的太小的花,则管理员无论如何优化数据库系统,其性能都会十分的有限,由于数据库没有足够的数据缓存来处理相关的操作。所以从这个角度讲,根据实际情况为数据库设置合适的缓存,是对数据库进行其它优化操作的前提。
  假如不考虑其它因素(如索引、连接)的影响,则一般情况下,假如这个参数设置的比较低的话,那么最近使用得数据就会被最近一次查询的数据所覆盖掉。如此的话,假如另外一个查询需要重新调用这些被覆盖的数据,则就必须重新从服务器的硬盘中读取相关的数据。此时就会极大的降低数据库查询的效率。
  显然,假如数据库缓存命中率降低,会影响数据库的性能,特别是查询作业的性能。那么这个影响的程度到底有多大的?是否值得数据库管理员花大力气去调整这个参数呢?笔者个人


相关文档:

Oracle定义约束 外键约束

 外键约束保证参照完整性。外键约束限定了一个列的取值范围。一个例子就是限定州名缩写在一个有限值集合中,这个值集合是另外一个控制结构——一张父表
    下面我们创建一张参照表,它提供了完整的州缩写列表,然后使用参照完整性确保学生们有正确的州缩写。第一张表是州参照表,State作为 ......

ORACLE 对象的使用

--创建对象类型
create or replace type emp_typ as object (
id number,
name varchar2(30),
sal number,
comm number,
member procedure change_comm(new_comm number),
member function get_info return  varchar2
) ;
--创建对象类型构造函数定义
create or replace type body emp_typ is
member proce ......

Oracle千万条记录插入与查询小结

 
最近做了个项目,实现对存在千万条记录的库表进行插入、查询操作。原以为对数据库的插入、查询是件很容易的事,可不知当数据达到百万甚至千万条级别的时候,这一切似乎变得相当困难。几经折腾,总算完成了任务。
  1、避免使用Hibernate框架
  Hibernate用起来虽然方便,但对于海量数据的操作显得力不从心。 ......

关于plsql中的define变量以及Oracle变量分类小结

关于plsql中的define变量以及Oracle变量分类小结
2009-07-29 15:18
先记载刚困扰我的一个问题,最近学习plsql,由于所用学习书籍后面提供题目常用到define变量,但由于这一变量的使用特殊性,自己便寻思这一变量所书类别,Oracle提供的变量分类共有四类:
1)标量(scalar)类型
2)复合(composite)类型
3)参照(re ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号