学习笔记-《基于Oracle的SQL优化》-第一章-1
开始学习崔老师的《基于Oracle的SQL优化》,七百多页,虽然可能会比较痛苦,但想必是一个痛并快乐的过程,尽情享受了。。。第一章:Oracle里的优化器优化器是Oracle数据库中内置的一个核心子系统,可以理解为一个核心模块或者一个核心功能组件。优化器的目的是按照一定的判断原则来得到它认为的目...
西班牙游记-连载1
打算分几次,将这次西班牙之行做个记录,一方面做个总结,方便后人查看,另一方面也是重温这次旅行的点点滴滴,确实有意义。《旅行开始前的准备》 说到准备,这次决定到西班牙旅行,也是6月份的时候,听到同事到巴塞罗那开会,碰巧老婆上半年刚从德国出差回来,对欧洲印象很好,...
报错:ORA-07445: exception encountered: core dump [kkqtnloCbk()+111] [SIGSEGV]
今天QQ有问个问题,说有个应用报错3113,按照常规,让其检查了:1、用户profile是否设置了idle_time参数,没有。2、应用与数据库之间有防火墙超时设置,没有。于是又问他是所有应用都报错,还是某个报错,反馈说是一个SQL,用到了full join。我觉得这个是SQL语法问题,和3113连接断开应该没有关系啊?于...
ORA-00060的示例与若干场景
create table eg_60 ( num number, txt varchar2(10) );insert into eg_60 values ( 1, 'First' );insert into eg_60 values ( 2, 'Second' );SQL> select rowid, num, txt from eg_60;ROWID NUM TXT------------------ ------...
关于如何判断与解决deadlock的问题
当前应用时常会出现deadlock的alert记录,关于如何判断与解决deadlock的问题,有一些介绍性的文章值得阅读。How to Identify ORA-00060 Deadlock Types Using Deadlock Graphs in Trace (文档 ID 1507093.1) 当Oracle检测到死锁后,会取消当前检测到死锁的SQL执行,...
一次删除还是分批删除
今天有位同事说“传言一次删除量大,是更慢”,这句话有对的地方,但重要的是问个为什么,只有知道了它的原因才能更好地使用Oracle提供的技术。我个人的理解是:删除量大小主要受限于UNDO表空间,因为执行DELETE每条...
Oracle官方文档下载与旧版本下载
非常著名的Oracle官方文档汇总的下载地址:http://tahiti.oracle.com/另外,对于10g以前的若干安装版本当前官网已经没有提供下载地址了,但可以通过提交一个SR来寻求帮助。...
应用长时间未调用后再次调用出现hang的情况
之前某应用就存在长时间不调用,再次调用时处于hang,等待10分钟返回3113的连接错误。今天正好同事也问了个相同的问题,也是应用长时间不调用就出现这种情况。 &nb...
How to Tell if the I/O of the Database is Slow - 2
IO的类型:平均响应时间直接关联到具体的IO类型:1. 读或写2. 单块或多块 单块IO,指一次只读一个块。例如,当一个session等待一个单块IO时,典型的等待事件就是“db file sequentia...
How to Tell if the I/O of the Database is Slow - 1
系统变慢的原因有很多,有时是因为SQL,有时是因为硬件,有时又可能是系统,就如前几篇文章介绍的,AWR是一个查找问题原因的重要手段,同时OSWatcher等工具也是排查系统问题必不可少的方法。当然系统变慢,也需要知...
Waiting Too Frequently for 'db file sequential read'
昨天有篇“db file sequential read”的介绍,还有一篇类似的:Resolving Issues Where Application Queries are Waiting Too Frequently for 'db file sequential read' Operations (文档 ID 1475825.1)诊断“db fi...
High Waits on 'Db File Sequential Read'
最近某些系统AWR的top 5中“Db File Sequential Read”占据的时间百分比非常大,通常这种等待事件是一种正常的。但当前系统性能是有些问题的,并发量大,有些缓慢,因此需要判断这种等待事件是否能够减少。MOS有几篇...
"log file sync"等待事件-2
“log file sync”有三个参数:P1 = buffer#P2 = 未使用P3 = 未使用buffer#这个buffer编号(在日志缓冲区中)的所有改变必须刷新到磁盘,写操作的完成保证了交易COMMIT的执行,即使实例crash也会保证COMMIT。因此LGWR...
"log file sync"等待事件-1
“log file sync”是等待事件中非常常见的一种,他排在AWR的top5中有时是正常情况,有时则需要格外注意。昨天也听了一次Oracle的网络研讨会,介绍的是AWR相关的分析,从中学习到最重要的一点,就是对于AWR报告中...
ORA-02396: exceeded maximum idle time, please connect again的原因
一般为了防止过多活动的session占用资源,可以对允许连接到数据库的session个数,已连接到数据库的session空闲时间等进行限制(当然也可以对尝试连接次数等其它很多内容进行限制)。方式...
续《表扫描与索引扫描返回的行数不一致》
续《表扫描与索引扫描返回的行数不一致》上篇文章主要介绍了如何从分析表得到的报错,以及trace中的信息,判断表返回的记录与索引返回记录不一致时的处理方式。下面这篇文章则介绍了针对ORA-1499进行问题排查的一些...
Proc中使用char数组、VARCHAR数组和char变量进行DELETE操作具体行数的细微区别
EXEC SQL BEGIN DECLARE SECTION;char a[10000][3];VARCHAR b[10000][31];char c[3];EXEC SQL END DECLARE SECTION;...int delete_rows=10000;...1. CHAR类型数组变量EXEC SQL for :delete_rowsdelete FROM table_na...
表扫描与索引扫描返回的行数不一致
某个应用最近总出现死锁,其中一些是因为报了索引和数据行存在不匹配的问题,MOS中有如下文档可以参考。ORA-1499. Table/Index row count mismatch(文档 ID 563070.1)现象:使用“validate structure cascade”...
使用索引快速全扫描(Index FFS)避免全表扫描的若干场景
使用索引快速全扫描(Index FFS)避免全表扫描(FTS)(文档 ID 70135.1)什么使用使用Index FFS比FTS好?Oracle 8的Concept手册中介绍:1. 索引必须包含所有查询中参考到的列。2. Index FFS只能通过CBO(Index hint强制使...
与IO相关的等待事件troubleshooting-系列9
Buffer Cache与IO相关的等待事件: 这种等待事件的产生原因是包含DBWR进程和IO Slaves的Buffer Cache操作。'db file parallel write' , 'db file single write', 'write complete ...