oracle 索引组织表
今天学习下oracle中索引组织表,通过这篇文章,你可了解到,什么是索引组织表?什么情况下可以使用索引组织?索引组织表的优点?索引组织表的弊端?一:什么时候索引组织表(IOT)索引组织表(index organized table): 索引组织表以B*树结构存储,我们知道oracle默认的表是是堆表,堆表是以一种无组织的方式存储...
oracle 位图索引(bitmap index)
今天研究下oracle中的位图索引,通过这边文章你会了解到,什么是位图索引?,什么情况下应该使用位图索引?位图索引的检索数据的过程,以及位图索引的弊端?一:什么是位图索引? 位图索引是从oracle 7.3版本开始引入的。目前oracle企业版和个人版都支持位图索引,但是标准版不支持。位图索引是这样一种结构,其...
浅谈Oracle中exists与in的执行效率问题
in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。一般大家都认为exists比in语句的效率要高,这种说法其实是不准确的,这个是要区分环境的。 exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只...
mysql innodb_log_file_size 和innodb_log_buffer_size参数
今天主要研究下关于mysql的redo log(事务日志)的相关参数的设置问题,其中主要涉及到了三个参数的问题,一:innodb_log_file_size :该参数决定着mysql事务日志文件(ib_logfile0)的大小;设置的太小:当一个日志文件写满后,innodb会自动切换到另外一个日志文件,而且会触发数据库的检查点(Checkpoint),这...
11g中direct path read事件等待很高的一个案例
在11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了.最近遇到了这样一个测试环境的案例,表现为direcy path read事件等特很高.[@more@]主机性能数据 Operating System Statistics - Detail Snap Time Load %busy %user %sys %idle %iowait 22-1月 18:00:280.00 22-1月 19:00:450.00 1.56 1.20 0.36 0.00 98.44 Cpu的的sys和user调用都比较低,cpu主要是消耗在io的等待上。 数据库性能 性能情况通过主要通过AWR报告来体现. 后台的job每1小时对数据库的性能数据进行采样,本报告中选取了系
关于Execute to Parse %:比例太低的优化思路
AWR报告中Execute to Parse %:比例太低,如下所示:Instance Efficiency Percentages (Target 100%)Buffer Nowait %:97.33Redo NoWait %:100.00Buffer Hit %:96.59In-memory...
Oracle慢SQL监控脚本实现
线上Oracle准备实现类似MySQL slow query的监控脚本,把查询时间超出定值的SQL定时的发送邮件告警,实现过程记录如下:主要思路是通过DBA_HIST的几个视图来获取每小时快照中慢SQL的情况,为了不影响线上环境,这里把脚本部署在了自己的监控端,通过DBLINK定期的抓取线上生产库的数据到监控数据库,并简...
sql中索引不会被用到的几种情况
针对自己曾经经历过的一道面试题,那些情况不走索引,于是搜索网络和数据的一些资料,整理如下: 1、查询谓词没有使用索引的主要边界,换句话说就是select *,可能会导致不走索引。比如,你查询的是SELECT * FROM T WHERE Y=XXX;假如你的T...
oracle 11g undo_retention 以及retention guarantee 小节
undo 里面记录的是被修改的数据块的前镜像,但是他并不是原数据块的copy,而是一个改变向量,真正的一致性读要借助CR块,Cr块也就是consistent read块它用来维护oracle的读一致性的数据块。当查询某些数据的时候,发现数据块的版本比我们要查询的新,例如session1执行了dml操作并没有提交,session2此时查找跟session...
buffer busy wait 解析
一:首先解释buffer busy wait等待事件出现的原因:进程获取SGA中的buffer会遵循以下步骤:1.获得cache buffers chains latch,遍历那条buffer chain直到找到需要的buffer header。 #块在缓存中的排列成的链 就是 cache buffers chains2.根据需要进行的操作类型(读或写),它需要在buffer header上获...
oracle 硬解析和软解析的深度分析
首先要知道,判断是硬解析还是软解析的依据在于sga中的 share cursor 的缓存情况,而判断是不是软软解析的依据在于pga中的session cursor是否可以重用,硬解析还是软解析:我们知道oracleSGA中包含share pool ,而share pool是由库缓存区(library cache)和数据字典缓存区(data dict cache)组成。数据...
一次oracle sql调优的经历(隐士转换导致索引失效)
今天同事给了一个语句,SELECT IMAGE FROM zhuaqu03.SL_ALIBABA4_PRODUCT_IMAGE WHERE P_ID =38184496132。他说查询慢。首先我看到:表里一共有200多万。SQL> select count(*) from zhuaqu03.SL_ALIBABA4_PRODUCT_IMAGE; COUNT(*)---------- 2622603然后给P_ID列建...