控制执行计划之-SPM BASELINE(二)
1) 自动捕获可以在session和system级别设置optimizer_capture_sql_plan_baselines参数来决定是否开启自动捕获baseline。默认为false,不开启。test@DLSP>alter session set optimizer_capture_sql_plan_baselines = true; Session altered....
控制执行计划之-SPM BASELINE(一)
SPM BASELINE 是11G出现的技术,它的出现是为了取代outline技术,outline在后面的版本可能会被废弃。outline可以实现的功能baseline都可以实现,相对于outline,baseline还有着更多更优秀的功能,如优化器认为有更好的执行计划时,会自动产生一个baseline,DBA可以通过进化baseline来验证、接受新产生的baseline。baseli...
优化器革命之-Dynamic Sampling(二)
说了这么多,我们先来看一下动态采样的威力到底如何?create table t asselect mod(num, 100) c1, mod(num, 100) c2, mod(num, 75) c3, mod(num, 30) c4 from (select level num from dual connect by level <= 10001); 创建了一张表T,字段C1和C2的值保持联动。select c1,c2 from t where rownum<20;&...
优化器革命之- adaptive cursor sharing (三)
请先阅读优化器革命之- adaptive cursor sharing (一)http://blog.itpub.net/22034023/viewspace-1218980/请先阅读优化器革命之- adaptive cursor sharing (二)http://blog.itpub.net/22034023/viewspace-1222110/上面两篇文章论述了ACS的特性,我们来看下ACS在PL/SQL里的工作情况,结果可能会令你非常失望:首先...
优化器革命之- adaptive cursor sharing (二)
http://blog.itpub.net/22034023/viewspace-1218980/请先阅读优化器革命之- adaptive cursor sharing (一)上文提到了对于没有直方图有索引的列,即使存在数据倾斜也不会使用到ACS,但是有一个特殊情况,如果不做等值查询,也有可能在没有直方图的列上使用到ACS。我们来看下一个实验:1.创建一张表,500万的记录数,i...
优化器革命之-Dynamic Sampling(五)
我们看看在有索引的情况下,索引的存在是否会对动态采样有帮助。test@DLSP>create table t 2 as 3 select 4 rownum as id 5 , mod(rownum, 10) + 1 as attr1 6 ,...
优化器革命之-Dynamic Sampling(四)
我们来看下表级的动态采样DYNAMIC_SAMPLING(alias, ),这个HINT要求输入2个参数,在CURSOR级别的DYNAMIC_SAMPLING只需要输入动态采样的级别就好,但是表级还需要输入表的alias作为第一个参数,如: DYNAMIC_SAMPLING(T, 4) 不过有趣的是,这种表级别的动态采样跟session/system和cursor level是不同的。第...
优化器革命之-Dynamic Sampling(三)
表上存在过时的统计信息,采用动态采样情况下,也会表现出一些异常情况: drop table t purge; create table t as select rownum as id , mod(rownum, 10) + 1 as attr1 , rpad('x', 100) as filler from du...
oracle breakable parse lock 易碎解析锁
非常旧的一个概念了,今天被人问起,本来是想直接google一个让他看,可是半天也没找到一个比较好的对此问题解释的文章。breakable parse lock叫它锁比较牵强,一般锁是为了保护并发修改的,但是它的含义更准确的说是:一个SQL语句或着PL/SQL等对象在其依赖对象上加的/注册上的 一个“依赖”,以null级别的library cache l...
个人paper下载
cost based oracle(一).pdf 介绍CBO的基础oracle library cache lock.pdf 深入分析Oracle lock的原理OWI:PerformanceDiagnostics & Tuning.pdf OWI性能诊断调优相关SSD&PCServer&Database Architecture .pdf 介绍了随着SSD技术、PCSERVER的发展,数据库服务器架构的调整INDEX、...
个人精华帖索引
漫谈Log File Synchttp://www.itpub.net/thread-1807437-1-1.html深入分析direct path readhttp://www.itpub.net/thread-1815281-1-1.html深入Oracle Log Buffer发展史http://www.itpub.net/thread-1803010-1-1.html深入分析Buffer Busy Waitshttp://www.itpub.net/thread-1801066-1-1.html索引页块里备删除的e...
11GR1 新特性 adaptive cursor sharing
11G以前ORACLE处理带有绑定变量的SQL存在一些问题,产生出的执行计划不是对所有值都好,取决于第一次硬解析时窥探的值,11GR1版本推出了adaptive cursor sharing,它主要的目的是提升对于带有绑定变量的SQL的执行计划性能。优化器在使用adaptive cursor sharing后,已经可以为一个带有绑定变量的SQL产生出多个执行计划。这...
Bind variables 和 bind variable peeking
在我们具体阐述问题之前,先建立一个测试用例:一张表test,列status存在2个值,有数据倾斜,在列status上有索引。CREATE TABLE testASSELECT ROWNUM id, DBMS_RANDOM.STRING('A', 12) name, DECODE(MOD(ROWNUM, 500), 0, 'Inactive', 'Active') status F...
ORACLE里的慢查跟踪 Real Time SQL Monitoring 11GR1 新特性
11GR1出现了一个比较有趣的新特性Real Time SQL Monitoring,“慢查”SQL的跟踪,可能我说ORACLE里有慢查SQL的跟踪、记录功能,很多DBA会比较陌生,这个功能在MYSQL、POSTGRES、MONGODB里都早已经实现。ORACLE 11GR1才姗姗来迟的推出这么一个功能。这个功能对运行时间比较长的SQL进行监控和记录。为了启用这个特性,需要确...
Oracle 11gr2 新技术 Cardinality Feedback
Cardinality Feedback是11GR2出现的一个新特性,它的出现是为了帮助ORACLE优化器依据更精准的Cardinality 产生出更加优秀的执行计划。Cardinality基数的评估准确与否,对于优化器异常重要,直接影响到后续的JOIN COST等重要的成本计算评估,如果评估不当会造成CBO选择不当的执行计划。此技术对于仅执行一次SQL无效,在SQL...
关闭数据库会导致cache的sequence值丢失吗?
sequence的值为什么不连续了,换一个说法就是什么情况下sequence的值会丢失。有几种情况:先看第一种情况:关闭数据库会导致cache的sequence值丢失吗?做个实验看看。ORACLE12>conn test/testConnected.test@ORACLE12>create sequence seq_a;Sequence created.test@ORACLE12>col SEQUENCE_NAME for a25tes...
AWR报告里的log file sync和user commit为什么不相等?
Top 5 Timed Foreground EventsEventWaitsTime(s)Avg wait (ms)% DB timeWait Classdb file sequential read1,234,2926,736544.97User I/O...
flashback table你需要知道的
今天查看数据库中一个SQL的执行计划,发现一个很奇怪的索引命名--------------------------------------------------------------------------------------------------------------| Id | Operation | Name &...
测试环境控制文件被误删的故障处理
今天在测试库测试一个脚本,当执行select * from v$log的时候报错select * from v$log *ERROR at line 1:ORA-00210: cannot open the specified control fileORA-00202: control file: '/opt/oracle/oradata/control01.ctl'ORA-27041: unable to open fileLinux-x8...
DML操作 DDL触发器
今天应用方告诉我,一个DML操作导致数据库报错,说“ORA-234567,不允许开发执行DDL操作,请联系DBA”为了安全,DBA在各个库上建立了DDL触发器,不允许开发人员执行DDL。但是开发人员给我反馈,他们仅仅只是执行了普通的INSERT操作,没有任何DDL操作。第一个感觉是,可能DML操作导致数据库递归了执行了某些DDL操作。还...