DSI中描述的touch算法。
纯理论介绍,有时间再做实验。2.jpg8I以后为了提升性能LRU又分为了LRU MAIN和LRU AUX.LRU MAIN上存在冷短和热端。_db_percent_hot_default 50  ...
关于working sets简单记录
一个working set由如下内容组成:1.jpg其中有我们比较熟悉的lru ,lru-w,ckpt queue.一个db_block_lru_latche保护一个working set。一个working sets至少需要包含50个buffers。每个working sets都有特定的一个db_bloc...
use_concat,NO_EXPAND提示
USE_CONCAT提示强迫优化器扩展查询中的每一个OR谓词为独立的查询块.最后合并所有查询块的结果,返回结果集给用户。但是从9.2.0后,这个提示似乎不是怎么有效了。select /*+ use_concat optimizer_features_enable(...
二级位图块,一级位图块简单记录
Dump of Second Level Bitmap Block number: 20 nfree: 9 ffree: 11 pdba: 0x01...
没有字典文件下,logminer使用。
delete from wxh_tbd where rownum<10;9 rows deleted.commit;Commit complete.begindbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>'/data/arch/crmgsb/crmg_1_82886_698776164.arc');end;/b...
一级位图块不能跨区?
SQL> create table wxh_tbd as select * from dba_objects;表已创建。SQL> select header_file,header_block from Dba_Segments where SEGMENT_name='WXH_TBD';HEADER_FILE HEADER_BLOCK----------- ------------&nb...
enq: TX - index contention等待
session 1:CREATE OR REPLACE PROCEDURE bfw_do_selectISbeginfor i in 1 .. 100000 loopinsert into wxh_tbd values(SEQUENCE_RDS_ALGORITHM.NEXTVAL,'s');end loop;commit;end;/BEGINFOR idx IN 1 .. 10 LOOPDbm...
对一个执行计划的疑问
WXH_TBD1,WXH_TBD2都根据dba_objects创建。连接列上有索引。object_name上有索引。以下是实际的执行计划。SQL> select * from wxh_tbd1 a ,wxh_tbd2 b where a.object_id=b.object_id and a.object_name='sss';未选...
cache buffer chain latch可以以只读模式共享
当多个进程请求同一类别的同一个latch时,是需要发生等待的,同一类别的同一latch是互斥的,即都是x模式的。只有cache buffer chain latch比较特殊,ORACLE宣称,9I以后这种latch如果只是只读操作,可以被共享。可...
hash join right outer小记
10G以后,对于HASH外连接,ORACLE会智能的选择驱动表。select count(*) from wxh_tbd1 a ,wxh_tbd2 b where a.object_id=b.object_id(+);对于上面的查询,如果选择以A为驱动表,那么执行计划的连接操作显示...
hash join的驱动表依赖统计信息
hash join的驱动表依赖统计信息,主要是之前听到一位同事说,驱动表依赖的是段头块的信息来判断表大小,做了下实验,不是。SQL> create table wxh_tbd1 as select * from dba_objects where rownum<1000;表已创建...
关闭监听的日志。
可以通过在listener.ora文件里增加LOGGING_LISTENER = OFF来关闭监听日志一般需要重启监听才能生效。lsnrctl status可以查看当前监听的日志路径,和监听配置文件的路径。[oracle@qa_143_199 ~]$ lsnrctl status...
脚本执行方式
有些脚本还是一个个执行比较好:create table t1_bak as select * from t1 order by col_1,col_2; truncate table t1; i...
子游标被age out或失效后,handler信息保留,heap内存已经被释放。
1. 在游标存在多个child crusor时,结构如上图。有一个非常重要的结构上图没画出来,就是data blocks会指向heap堆,就是海波说的heap 6。从你的实验清晰的看出ch...
多版本cursor,与session_cached_cursors关系
在想如果一个存在多版本的cursor,如果让每一个版本在session里执行超过三次,那么被cache的cursor是多个还是一个。实验证明是多个。create table wxh_tbd as select * from dba_tables;var a varchar2(10)var b v...
生产环境遭遇ORA-01410: invalid rowid。分析
一个过程报错:ORA-01410: invalid rowid。这个过程以前都没有出现过这个错误。当时正在rebuild online索引。怀疑是这个原因导致的。错误模拟:1)session1,创建一个表T1,ID为主键。运行一个比较耗时的SQL,强制让这...
session_cached_cursor另类用途
版本11.1.0.7最近生产库的一个sql的version_count达到了七千多,占用的shared pool内存也达到了400多M。非常吓人。除BUG的因素外,还有就是update后面set了非常多的字段,由于varchar2字段的绑定变量分级,造成child...
v$sqlarea的SHARABLE_MEM字段可以查看SQL占用shared pool大小
v$sqlarea的SHARABLE_MEM字段可以查看SQL占用shared pool大小。有些SQL的 version较多,可能占用了过大的shared pool。可以通过这个字段查看。单位是字节。ops$admin@CRMG>select SHARABLE_MEM,version_count,sql_...
cursor: pin S wait on X等待实验二
我的ORACLE版本11.1.0.7构造一个查询,查询的对象列表400个。可以根据all_tables去构造。主要目的是让语句的解析时间足够长。select count(*) from a,b,c.....(400个) where 1=0;在session1和session2分别执行...
用hanganalyze解决row cache lock(转贴)
今天某省的一位同事来说,在执行一个split分区的脚本时长时间没有响应。登录上去查看,手工执行了split脚本,发现确实会hang住:SQL> l 1 ALTER TABLE A_PDA_SP_STAT SPLIT PARTITION P_MAX AT (200...