ORACLE INTERNAL
robinson1988
本人精通SQL,精通所有关系型数据库SQL调优,精通所有关系型数据库性能优化,精通所有关系型数据库架构,精通分库分表,熟悉大数据Hadoop,Hive,Spark,Flume,Kafka,Flink,熟悉各种ETL工具,熟悉Python,Java,C
展开
-
SCN&CHECKPOINT
SCN:System Change Number ,用来标示数据库在某个时刻的确切版本,他只能前进,不能后退. SCN是数字,它是由timestamp转换过来的,可以select timestamp_to_scn(systimestamp) from dual;获得一个SCN,也可以用scn_to_timestamp转换为timestamp. SCN存在于控制文原创 2009-10-16 16:08:00 · 2372 阅读 · 0 评论 -
Btree Index storage internal
----------------Btree Index 原理----------------1.Oracle中的Btree Index具有3大结构,root节点,branch节点,leaf节点.Root节点始终紧跟索引段头. 当索引比较小的时候,root节点,branch节点,leaf节点都存储在同一个block中.Branch节点主要存储 了索引的键值,但是这个键值并不是完整的,它只是完整索引值的部分前缀.同时Branch节点还存储了指向 leaf节点的指针(DBA),另原创 2011-01-04 19:56:00 · 6539 阅读 · 1 评论 -
shared pool 原理
<br />Shared Pool 原理<br /> Robinson<br /> <br />由于shared pool中最重要的是library cache,所以本文主要讲解Library cache的结构,library cache latch,library cache lock,library cache pin。<br /> <br />What is shared pool?<br /> <br />Shared pool是SGA中的一部分,由于原创 2010-11-26 17:23:00 · 18324 阅读 · 5 评论 -
Oracle11gR2 全表扫描成本计算(非工作量模式-noworkload)
数据库版本Oracle11gR2SQL> select * from v$version where rownum=1;BANNER--------------------------------------------------------------------------原创 2011-07-13 14:43:30 · 3709 阅读 · 0 评论 -
Oracle11gR2 全表扫描成本计算(工作量模式-workload)
昨天测试了非工作量模式下Oracle11gR2全表扫描的成本计算,现在测试一下在工作量模式下Oracle11gR2全表扫描的成本计算首先讲表blocks增加到10003个SQL> select owner,blocks from dba_tables where table_na原创 2011-07-14 16:17:00 · 3919 阅读 · 4 评论 -
Oracle11gR2 INDEX FAST FULL SCAN 成本计算
SQL> select * from v$version where rownumBANNER--------------------------------------------------------------------------------Oracle Databa原创 2011-07-15 14:24:42 · 2676 阅读 · 0 评论 -
选择率,基数计算公式
单个谓词过滤:= 基数计算公式 :1/num_distinct*(num_rows-num_nulls),如果有直方图,基数计算公式=(num_rows-num_nulls)*density> 基数计算公式:(high_value-limit)/(high_value-low原创 2011-07-25 16:01:13 · 5866 阅读 · 2 评论 -
索引扫描成本计算
SQL> select * from v$version where rownumBANNER--------------------------------------------------------------------------------Oracle Da原创 2011-07-28 17:51:04 · 3628 阅读 · 0 评论 -
NESTED LOOPS 成本计算
SQL> select * from v$version where rownum=1;BANNER--------------------------------------------------------------------------------Or原创 2011-08-02 17:43:33 · 6620 阅读 · 0 评论 -
为什么index fast full scan会扫描segment header,index full scan 不扫描 segment header
index full scan , 扫描root block ---> branch block ----> leaf block ,扫描leaf block的时候是有序的,可以从左往右,也可以从右往左,返回的结果也是有序的,并且是但块读index fast full scan 扫描 索引段头(单块读) --->root block---->branch block----->leaf blo原创 2012-03-02 16:28:56 · 4590 阅读 · 0 评论 -
Buffer Cache 原理
<br />这篇文章 是我给team做内部培训用的,现在拿出来share一下 <br /> Buffer Cache 原理<br /> <br />我们在监控等待事件,查看AWR,ASH报表的时候经常会看到latch: cache buffers chains,有可能还会看到latch: cache buffers lru chain这些等待事件原创 2010-11-02 20:32:00 · 18870 阅读 · 4 评论 -
Oracle10g中 system 回滚段的作用
在Oracle10g中依然存在一个回滚段,名叫system,它是有Oracle在创建数据库的时候创建的,并且这个回滚段存在于SYSTEM表空间中。它存在的目的就是为了回滚系统事物,也就是说数据字典修改之后的镜像就存在于system回滚段。SQL> select segment_name,owner,tablespace_name,segment_id,file_id from db原创 2010-05-07 23:42:00 · 4838 阅读 · 0 评论 -
bitmap index 的研究
前一篇blog探讨了 bitmap index 的 start rowid,end rowid 是怎么存储的,现在 继续研究 bitmap index SQL> create table test as select * from dba_objects where 1=2;Table createdSQL> insert into test select * f原创 2010-03-21 23:33:00 · 3550 阅读 · 0 评论 -
PCTFREE&ITL&CONSISTANT READ
ITL:Interested Transaction List,很多人都把它叫做事务槽。它位于BLOCK Header,下面来看看DUMP出来的一个BLOCK Itl Xid Uba Flag Lck Scn/Fsc0x01 0x0006.02d.000027cc 0x00809de3.0266.02原创 2009-10-24 00:50:00 · 3497 阅读 · 0 评论 -
ORACLE如何根据ITL找到前镜像的
SQL> select * from emp where sal=800;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ---------- --------- ----- ----------- --------- --------- ------ 7369 SMITH CLER原创 2009-12-21 11:43:00 · 5971 阅读 · 7 评论 -
oracle的TX lock信息在哪里?
我们都知道ORACLE不会发生锁升级,锁对于ORACLE来说并不是稀缺资源,为什么DML lock对于ORACLE来说不是稀缺资源,下面来寻找答案。SQL> select * from emp where sal>2999;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- -------原创 2009-12-21 12:43:00 · 3024 阅读 · 1 评论 -
测量uniform size 表空间中的bit map block 中的1 bit 能管理多少空间
前面一篇文章已经讨论了,在自动分配的本地管理表空间中,bit map block中的1 bit能管理多少的空间,现在测量一下在统一尺寸的本地管理的表空间中,bit map block中的1 bit 能管理多少空间。SQL> show parameter block_sizeNAME TYPE VALUE-----原创 2009-12-24 17:00:00 · 2580 阅读 · 0 评论 -
测量block size 为8K ,自动分配的本地管理表空间的位图block一位能管理多少空间
从oracle8i起,oracle推出了本地管理表空间的来代替数据字典管理的表空间,数据字典管理表空间是用uet$,fet$这两个表来管理的,它们现在依然存在于数据库中,不过不起任何作用。SQL> select count(*) from uet$; COUNT(*)---------- 0SQL> select count(*) from fet$; COUN原创 2009-12-24 12:38:00 · 2702 阅读 · 0 评论 -
oracle中一个数据文件的最大值(非lob)
ORACLE的一个数据文件的最大值是多少呢?我们知道ORACLE的最小的物理单位是BLOCK,数据文件的组成的最终形式也是block,那么数据文件的大小限制就应该是block数量的限制,那么究竟block的数量有何限制,这里就要提到一个ORACLE内部术语DBA(此dba非数据库管理员,而是data block address) Extent 0 : L1 dba: 0x原创 2009-12-25 11:10:00 · 3923 阅读 · 2 评论 -
data file header的一点点研究
数据文件头就是datafile 的第1,第2个block,我们直接通过alter system dump datafile n block min 1 max 2;是得不到任何信息的,请看测试:SQL> alter system dump datafile 1 block min 1 block max 2;系统已更改。部分的DUMP文件内容Start dump data bloc原创 2009-12-25 12:41:00 · 4691 阅读 · 2 评论 -
影响Incremental checkpoint position的条件
一:fast_start_io_target,这个参数在9i中被废了,所以不讨论了,而且在10gR2的官方文档中也找不到此参数的任何信息,不过可以show parameter看到此参数。二:log_checkpoint_timeout,该参数默认值为1800 seconds,也就是说每个半小时会执行一次incremental checkpoint,注意观察alert log的告警信息(想要在a原创 2009-12-28 14:59:00 · 3318 阅读 · 0 评论 -
怎么将dump 出来的 bitmap index 中的rowid 还原回 file_id,block_id
今天在研究Bitmap Index internal的东东,不过刚开始就被卡住了,dump出来了bitmap index 根据DSI知道有个叫start rowid,end rowid的东东,却不能将rowid还原回file_id,block_id。现在终于搞懂了呵呵,写出来分享下。哎,前面的路还很长,很长..................SQL> create table test(n原创 2010-03-19 15:22:00 · 2772 阅读 · 0 评论 -
为什么全表扫描成本(COST)公式里面要除以sreadtim
全表扫描的成本计算公式 如下:Cost = ( #SRds * sreadtim + #MRds * mreadtim + CPUCycles / cpuspeed ) / sreadtim全表扫描的时候,单块读次数=0,#SRds表示单块读次数。全表扫描的成本里面,CPU消耗其实非常少,可以忽略不计,所以全表扫描的公式可以改写原创 2014-10-10 17:41:38 · 5374 阅读 · 0 评论