Oracle
guxueliang
这个作者很懒,什么都没留下…
展开
-
生成AWR时出错, ERROR: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY"
生成AWR报表时,出现 如下错误ERROR: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line 919 ORA-06512: 在 line 1数据库版本为WIN64,11.2.0.3在oracle support中查询如下,确认为bug在之前的MOS中也提到这原创 2013-05-31 11:12:01 · 4606 阅读 · 0 评论 -
DBMS_XPLAN
与手工执行计划表相比,使用DBMS_XPLAN通常可以获得更好的结果,因为他的语法更加加单,还提供多种有用的数据如格式,并且可以利用缓存的执行计划统计信息。调用DBMS_XPLAN函数嘴简单的方法是使用SELECT * FROM TABLE()语法,如下面的语句:SELECT * FROM TABLE(DBMS_XPLAN.FUNCTION(OPTIONS)); 最常用的两原创 2013-06-24 14:30:29 · 732 阅读 · 0 评论 -
Libray Cache Lock/Libray Cache pin
编译SQL或PLSQL对象,获取该对象(cursor,procedure)handle上exclusive类型的lock,并且持有data heap上exclusive类型的pin,防止其他人读取和修改。同时,在该对象所依赖的对象(table)上,必须持有一个share类型的lock 和pin,防止在修改的过程中,被其他进程所修改。访问对象:访问SQL或PLSQL对象,获取该对象(curs转载 2013-06-18 17:17:17 · 497 阅读 · 0 评论 -
高级OWI与ORACLE性能调整读书笔记之SQL的过程执行
用户请求执行新的SQL时,Oracle则会利用相关的内存和锁存器执行必要的工作。将这些内容按照时间整理结果如下1. 用户执行新的SQL时。Oracle在执行基本语法和权限检查等步骤后,获得Hash bucket的library cache锁存器,然后确认库高速缓冲区上是否存在相同的SQL,即相同的LCO。若在获得library cache锁存器的过程中发生争用,则等待lat原创 2013-06-17 14:17:42 · 734 阅读 · 0 评论 -
Oracle 锁
SELECT * FROM V$LOCK --所有拥有和等待锁的信息SELECT * FROM V$ENQUEUE_LOCK --被阻塞等待者的信息SELECT * FROM V$LOCKED_OBJECT --锁对象SELECT * FROM DBA_WAITERS --发生阻塞时,拥有锁和等待锁的相互关系--latch保护的是链表结构--锁保护的是数据库对象e转载 2013-06-07 10:21:14 · 447 阅读 · 0 评论 -
高级OWI与ORACLE性能调整读书笔记之UPDATE/UPADTE引起的buffer busy wait
UPDATE/UPADTE引起的buffer busy wait多个会话同时update相同行的时候,通过TX锁形成同步。但同时多个会话对相互不同的行执行update时候,若该行都是在同一个数据块里面,则需要通过buffer lock进行同步。再次过程中,若发生buffer lock争用,则等待buffer busy waits事件。这里发生的争用与TX锁是截然不同的,TX锁需要解除事务去原创 2013-06-14 15:18:04 · 667 阅读 · 0 评论 -
高级OWI与ORACLE性能调整读书笔记之Select/Select引起的read by other session
在抽象层次上,为了修改一个行,获得锁存器或者锁的过程如下1) 为了查找要修改行相对应的块存在的位置(hash chain),请求cache buffers chains锁存器2) 对载入块的缓冲区请求buffer lock,并释放cache buffers chains锁存器3) 请求TX锁,修改相应行。若在此过程中,没有获得TX锁。则释原创 2013-06-13 17:15:06 · 1396 阅读 · 0 评论 -
Oracle 11g direct path read 等待事件的理解
在Oracle 11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了。 在10g中,都是通过gc buffer来读的,所以不存在direct path read的问题。 direct path read较高的可能原因有: 1. 大量的磁盘排序操作,order by, group by, union, distinct,转载 2013-06-13 17:18:46 · 4680 阅读 · 0 评论 -
高级OWI与ORACLE性能调整读书笔记之Latch:cache buffers chains争用情形
模拟Latch:cache buffers chains的两种情况。Oracle Latch:cache buffers chains的出现一般情况下是由于低效的SQL(并发的、大范围的的索引扫描和全表扫描)和Hot Block引起。下面就模拟这两种情况。 并发的全表扫描1. 首先建立测试Table,数据量在25W左右.sajet@FDK> drop table cbc_fu原创 2013-06-07 17:48:14 · 726 阅读 · 0 评论 -
Oracle 虚拟索引(Virtual index)
Oracle的虚拟索引允许在不创建真实索引的情况下来测试添加索引对查询是否有帮助,测试如下: 1先看初始执行计划 SQL> EXPLAIN PLAN FOR SELECT * FROM BI.ODS_PMSETTLE WHERE ID=1300;已解释。SQL> SET LINESIZE 130SQL> SELECT * FROM TABLE(DBMS_XPLAN.DI原创 2013-06-24 14:57:06 · 627 阅读 · 0 评论