future2012lg

博客园 首页 新随笔 联系 订阅 管理

2013年7月31日 #

摘要: db file scattered read 等待事件:我们经常会见到db file scattered read等待事件,在生产环境中,这个等待事件可能更为常见。这个事件表明用户进程正在读数据到Buffer Cache中,等待直到I/O调用返回。db file scattered read发出离散读,将存储上连接的数据块离散的读入到多个不连续的内存位置。Scattered Read通常是多块读,在Full Table Scan或Fast Full Scan等访问方式下使用。Scattered Read代表Full Scan,当执行Full Scan读取数据到Buffer Cache时,通常连 阅读全文
posted @ 2013-07-31 23:15 future2012lg 阅读(425) 评论(0) 推荐(0) 编辑

摘要: 转载:http://www.dbtan.com/2010/04/db-file-sequential-read.htmldb file sequential read (数据文件顺序读取):db file sequential read是个非常常见的I/O相关的等待事件,通常显示与单个数据块相关的读取操作,在大多数的情况下,读取一个索引块或者通过索引读取一个数据块时,都会记录这个等待。这个等待事件有3个参数P1,P2,P3,其中P1代表Oracle要读取的文件的绝对文件号,P2代表Oracle从这个文件中开始读取的起始数据块号,P3代表读取的BLOCK数量,通常这个值为1,表明是道单个BLOC 阅读全文
posted @ 2013-07-31 23:14 future2012lg 阅读(2606) 评论(0) 推荐(0) 编辑

摘要: 这里就以INDEX_JOIN为例,简单描述一下如何影响Oracle的执行计划的产生。控制执行计划最简单的方法莫过于使用HINT,这篇文章要介绍的是,在不使用HINT的情况下,让Oracle产生INDEX_JOIN执行计划。下面先构造查询所用的表,问题中使用的表是HR用户下的EMPLOYEES。如果hr用户不存在,Oracle9i可以通过$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建用户。SQL> CREATE TABLE EMPLOYEES AS SELECT * FROM HR.EMPLOYEES;表已创建。SQL> 阅读全文
posted @ 2013-07-31 22:29 future2012lg 阅读(1808) 评论(0) 推荐(0) 编辑

摘要: Oracle优化器介绍本文讲述了Oracle优化器的概念、工作原理和使用方法,兼顾了Oracle8i、9i以及最新的10g三个版本。理解本文将有助于您更好的更有效的进行SQL优化工作。RBO优化器RBO是一种基于规则的优化器,随着CBO优化器的逐步发展和完善,在最新的10g版本中Oracle已经彻底废除了RBO。正在使用Oracle8i或9i的人们或多或少的都会碰到RBO,因此在详细介绍CBO之前,我们有必要简单回顾一下古老的RBO优化器。在RBO中Oracle根据可用的访问路径和访问路径的等级来选择执行计划,等级越高的访问路径通常运行SQL越慢,如果一个语句有多个路径可走,Oracle总是选 阅读全文
posted @ 2013-07-31 22:23 future2012lg 阅读(354) 评论(0) 推荐(0) 编辑

摘要: 与单实例不同,在RAC环境中,由于多节点的原因,会因为节点间的资源争用产生GC类的等待,而这其中,GCBufferBusyWaits又是最为常见的,从性能角度上说,RAC是把双刃剑,用的好,能够有很大的性能提升,用的不好,则会由于内部资源竞争的影响,严重拖累数据库性能。简单来说,用RAC,就一定要将各个节点隔离化,不管是通过业务隔离,区域隔离还是什么其他隔离手段,最终的目的,就是要各个节点所承担的业务,访问不同的数据对象,最大可能的减少节点间的资源争用,才能发挥RAC集群系统的最大性能。因此,如果在一个RAC数据库中,发现大量的GCBufferBusyWaits,则很大程度上说明,该套系统可能 阅读全文
posted @ 2013-07-31 22:07 future2012lg 阅读(1220) 评论(0) 推荐(0) 编辑

摘要: V$SESSION是APPS用户下面对于SYS.V_$SESSION 视图的同义词。在本视图中,每一个连接到数据库实例中的session都拥有一条记录。包括用户session及后台进程如DBWR,LGWR,arcchiver等等。V$SESSION中的常用列V$SESSION是基础信息视图,用于找寻用户SID或SADDR。不过,它也有一些列会动态的变化,可用于检查用户。如例:SQL_HASH_VALUE,SQL_ADDRESS:这两列用于鉴别默认被session执行的SQL语句。如果为null或0,那就说明这个session没有执行任何SQL语句。PREV_HASH_VALUE和PREV_AD 阅读全文
posted @ 2013-07-31 21:18 future2012lg 阅读(29704) 评论(0) 推荐(3) 编辑

摘要: 锁定类型 行级锁 表级锁行级锁 ---- 行被排他锁定 ----在某行的锁被释放之前,其他用户不能修改此行 ----使用 commit 或 rollback 命令释放锁 ----Oracle 通过使用 INSERT、UPDATE 和 SELECT…FOR UPDATE 语句自动获取行级锁SELECT…FOR UPDATE 子句―在表的一行或多行上放置排他锁―用于防止其他用户更新该行―可以执行除更新之外的其他操作―select * from goods where gid=1001―for update of gname;―只有该用户提交事务,其他用户才能够更新gnameFOR UPDATE W 阅读全文
posted @ 2013-07-31 20:52 future2012lg 阅读(665) 评论(0) 推荐(0) 编辑

摘要: Oracle的TM锁类型锁模式锁描述解释SQL操作0none1NULL空Select2SS(Row-S)行级共享锁,其他对象只能查询这些数据行Select for update、Lock for update、Lock row share3SX(Row-X)行级排它锁,在提交前不允许做DML操作Insert、Update、Delete、Lock row share4S(Share)共享锁Create index、Lock share5SSX(S/Row-X)共享行级排它锁Lock share row exclusive6X(Exclusive)排它锁Alter table、Drop able、 阅读全文
posted @ 2013-07-31 20:51 future2012lg 阅读(1481) 评论(0) 推荐(0) 编辑