定位ORACLE TX锁和表锁的脚本
--查看 v$lock 表中的锁信息select sid,type,id1,id2,decode(lmode,0,'None',1,'Null',2,'Row Share', 3,'Row Exclusive',4,'Share',5,'Share Row Exclusive',6,'EXclusive') lock_mode, decode(request,0,'None',1,'Null',2,'Row share',3,'R...
ORACLE锁阻塞研究
1. SESION 信息SESSION 125SQL> select sid from v$mystat where rownum select sid from v$mystat where rownum
使用正确的表连接顺序和表连接方式优化SQL
1. 创建测试数据create table lixia.t1 as select * from dba_objects; delete from lixia.t1 where object_id is null;alter table lixia.t add constraint pk_t1 primary key(object_id);exec dbms_stats.gather_table_stats('LIXIA','T1',cascade=>true,no_invalidate=> FALSE,estimate_percent => 100,metho...
ORACLE 11G 捕获持有TX锁导致enq:TX-contention 等待的SQL
--创建存储监控锁等待数据的表create table lixia_lock as select t1.sid block_sid,t1.SERIAL# block_SERIAL#,t1.sql_fulltext block_sql,t1.object_id block_object_id,t1.xid,t1.lock_TYPE block_lock_TYPE,t1.lock_LMODE block_lock_LMODE, --造成阻塞的SQL &...
使用索引优化排序
使用索引优化排序1. 创建测试数据sqlplus / as sysdbaSQL> create table lixia.t1 as select * from dba_objects;Table created.SQL>connect lixia/lixiaSQL> create table t2 as select * from t1;Table created.SQL> create index idx_t1_1 on t1(object_name,object_id);Index created.SQL> create i...
使用SHELL脚本批量生成AWR报告
一、查询需要生成的AWR报告的开始快照ID和结束快照ID,比如我们要查询7月12日9-18点的AWR快照IDSELECT distinct trim(SNAP_ID) FROM DBA_HIST_SNAPSHOT where to_char(BEGIN_INTERVAL_TIME,'yyyy-mm-dd hh24')='2016-07-12 09';TRIM(SNAP_ID)---------------------------------------------------------...
日志切换检查点等待导致 log file sync 平均等待时间升高分析
log file switch (checkpointincomplete) 等待事件导致WORKLOAD REPOSITORY report forDB IdInst numReleaseORCL111.2.0.4.0&nb...
创建索引、删除索引和REBUILD索引的锁行为
ORACLE 11.2.0.4在创建索引和REBUILD索引时会对表添加共享模式的表级锁(S锁),在删除索引时会对表添加排他模式的表锁(X锁)
SQL优化思路
1、生成TOP SQL的执行计划SQL> set autotrace trace;SQL> set timing on;select t1.object_id,t1.object_namefrom lixia.t1 ,lixia.t2 ,lixia.t3where t1.object_id=t2.object_id and t2.object_id=t3.object_id and t1.object_id
SQL执行计划解析一例
执行的SQL语句:select /*+ use_merge(t4,t2)*/ count(1) from lixia.t4,lixia.t2 where t4.object_id=t2.object_id and (t2.object_id=52946 and t4.owner='BI' and t2.object_name='CHANNELS' OR t2.object_name='C_COBJ#'); 查看执行计划:SQL> select * from table(dbms_xplan...
索引优化UNDO db file sequential read等待
索引优化UNDO db file sequential read等待环境描述:DATABASE:ORACLE 企业版 11.2.0.4 64 位OS: WIND7 64 位 准备测试数据: create table lixia.lob_tab2 (n number,cclob)lob (c) store as SECUREFILE lob_2(noc...
研究在表很小时唯一索引为什么可以优化热块争用,但非唯一索引无法优化热块争用
唯一索引优化热块争用
优化触发器导致会话阻塞
数据库:ORACLE DATABASE 10.2.0.4操作系统: WIN7 64位旗舰版1、准备测试数据create table lixia.t1 (id nunmber);create table lixia.t1_log (id number);insert into lixia.t1 select 1 from daul;insert into lixia.t1 select 2 from daul; insert into lixia.t1 select 3 from daul;insert into ...
测试with与临时表优化嵌套表连接
操作系统:WINDOWS 7 旗舰版 64位硬件: 笔记本ORACLE DATABASE: 11.2.0.4 64 位RAC: NO试验目的:测试WITH与临时表哪种方式可以优化嵌套表连接试验结论:WITH无法优化嵌套表连接,而且还会加大一倍嵌套表连接的成本。使用临时表分解复杂嵌套表连接可以很好的优化性能。SQL>alte...