优化器革命之-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操作。还...
误操作经历,truncate导致闪回查询失败
开发人员向我反映由于误操作删除了表里的一些数据,要求我恢复。咨询了误操作的时间点后,我用闪回查询试了一下,被误删的数据还在回滚段,可以挽救回来。我先备份了现在表里的数据。create table a as select * from 业务表。然后我做了一件愚蠢的事truncate table 业务表insert into 业务表 select * from 业务表&...
a-better-way-to-find-literal-sqls-in-oracle-10g/
Not sure if it is news, but here we go …I was recently looking at hard parsing SQL statements overtaking one of my systems and needed to find literal SQLs that caused the problem.The traditional way to look for literal SQLs in ORACLE (at least as it was for m...
遭遇ORA-39126 ORA-00904 ORA-06512
expdp test/123456 dumpfile=b.dmp directory=DUMP_DLSP 使用数据汞的过程中遭遇如下错误,从我使用的参数来看,并没有使用什么高级的参数,都是最最普通的参数。查看MOS,没发现有跟我比较类似的报错信息。通过10046也没跟踪到有价值的报错信息。Export: Release 11.2.0.3.0 - Production on Mon Feb 17 14:17:44 2014...
monitor and assess Redo Apply performance
Query the V$RECOVERY_PROGRESS view to monitor and assess Redo Apply performance. This view contains the following columns: V$RECOVERY_PROGRESS COLUMN DESCRIPTION Average Apply Rate Redo Applied / Elapsed Time includes time spent actively applyi...
修正执行计划的利器,SQL PROFILE脚本
点击这里下载 sql profile 脚本 profile.sql 我们先来看下如何手工创建sql profile来修正执行计划。创建两张表test1、test2,在表test2的列object_id 上创建索引,分析两张表。 create table test1 as select * from dba_objects;create table test2 as s...
父游标可以拥有的子cursor数量
11GR1以前,经常可能会遭遇父游标下挂载子游标过多的问题,AWR报告的SQL StatisticsSQL ordered by Version Count也给出了按照子游标数量排序的SQL,某些情况下,这个数量可能会成千上万,一定程度上造成了...
查看SQL PROFILE使用的HINT
10G可以通过如下查询来获取SQL PROFILE使用的HINTSQL> SELECT attr_val 2 FROM sys.sqlprof$ p, sys.sqlprof$attr a 3 WHERE p.sp_name = 'opt_estimate' 4 AND p.signature = a.signature 5 AND p.cate...