深入理解Oracle优化器(2):该不该翻译Carnality?
感觉cardinality翻译成基数很不好,误导科技工程人员! 我觉得最初翻译这词的翻译者就没有理解它本身的意思,所以字典上就会误导很多人 基数给人的感觉是集合的全部,比如说我国人口基数大,有13亿 而cardinality应该是给集合应用某种条件后的输出数
误删了表,但是在recyclebin 里找不到?
参考:误删表 却在recyclebin找不到
PL/SQL批处理语句:BULK COLLECT 和 FORALL对优化的贡献
我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理 这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换,每次却换时,都有额外的开销 请看下图: 但是,FORALL和BULK COLLECT可以让PL/SQL引擎把多个上下文却换压缩成一个,这使得在PL/SQL中的要处
深入理解Oracle表(7):10种表类型的数据存储和适用场景浅析
本博文Think主要从两个问题着手: ① 在哪些情况下某种类型的表比其他表类型更适用? ② 不同类型的表其数据是如何组织和存储的? 闲言少叙,一家之言,欢迎拍砖: ㈠ 堆组织表  
跟Think学理财:阶梯滚动存款法--让你也能放银行利息
㈠ 好处 ① 避免提前支取定期存款导致的利息损失 ② 坐享每年整取多年高利息 ㈡ 做法 比如: 第一年将存款分成A、B、C三等份,存1、2、3年定存 第二年1年定到期转存为3年定 第三年2年定到期转3年定 &nbs
深入理解Oracle表(6):堆组织表(HOT)和索引组织表(IOT)的区别
㈠ HOT和IOT的起源 堆组织表的存储速度因为不用考虑排序, 所以存储速度会比较快. 但是要查找符合某个条件的记录, 就必须得读取全部的记录以便筛选. 而这个时候为了加快查询速度, 索引就出现了, 索引是针对少量特定字段的值拿出来进行排序存储, 并记录在表中的位置, &
ARP协议笔记
㈠ ARP的定义 ARP(Address Resolution Protocol),地址解析协议,把IP地址解析成MAC地址 如:192.168.1.1->00-1E-37-44-86-5E,电脑在局域网内通讯时用数据帧通讯的,数据帧的头部就包含MAC地址信息 看下面这张图: PC1想向PC2发送数据,就
针对Oracle用户的Linux高级命令详解之文件操作篇
⑴ 轻松更改所有者,组和权限 下面Think将分别介绍chmod chown chgrp之如何轻松更改所有者,组和权限 假设有如下几个文件:[root@bogon Desktop]# ls -l 总计 4 -rw-r--r-- 1 root root 0 02-07 10:21 a -r-x-w--w- 1 root root 0 02-07 10:22 b -rw-rw-rw- 1 root root 0 02-07 10:22 c -rw
Oracle直接路径加载--append的深度解析
㈠ 直接路径加载和buffer cache 直接路径插入的数据不经过buffer cache,从PGA直接把数据格式化成Oracle块 然后由普通的Oracle Server Process进程把数据块写入数据文件 因为不经过buffer cache,所以不需要DBWn介入 假如有表a,现要将a中的数据插入表b
浅谈Oracle的高水位线--HWM
高水位是记录段里能容纳数据的上限,高水位存在段里 全表扫先读段头块,而后在段头块里面找到HWM 下面用实验由内而外来理解Oracle的HWM--t表有一条数据 hr@ORCL> select * from t; ID NAME ---------- ---------- 1 AAAAA --找t段的段头块 hr@ORCL> select header_file,header_block from dba_segments where segment_name=\'T\' and owner=\'HR\'; HE
深入理解Oracle索引(4):optimizer_index_cost_adj详解
如果哪天你遇到特殊的情况,比如系统数据字典的索引坏了,但是你去没有办法去修改这个索引,因为有些系统内部的东西你是动不了的 你就会说“我要是能绕过这个索引,全部走全表扫描,把库里的数据全部导出来该多好啊” 那么,这个时候,optimizer_index_cost_adj就很有用了
针对Oracle用户的Linux高级命令详解之资源管理篇
⑴ free 一个常见的问题是: 我的应用程序,服务器,用户以及系统进程等正在使用多少内存? 或者 现在多少内存可用?如果正在运行的进程使用的内存大于可用RAM,则需要将这些进程移到交换区  
深入理解Oracle优化器(1):倾斜列(skew)和histograms
㈠ Histograms 柱状图?直方图?其实这俩是一个概念,在这里Think直接用histograms来称呼 histograms可以这么理解就是一个列上数值的大致分布的密度(density)和范围(range) 通俗一些就是CBO用histgrams来更加准确的判断按照某个条件对每一列查询能返回多
深入理解Oracle索引(3):唯一索引和ROWID
索引都会包含rowid来定位到具体的位置,但是唯一索引不会用rowid来作为“索引键”的一部分 比如在列col1上建立非唯一索引,则其索引键是col1| rowid,这样索引键就唯一了,但唯一索引不会在列上加上rowid构成索引键 测试:SQL> conn / as sysdba 已连接。 SQL> create table t as select * from dba_objects; 表已创
深入理解Oracle调试事件:10046事件详解
之前也写过一篇10046的文章:10046简介 今天,Think想和大家一起共同深入去理解一下Oracle的这些调试事件 10046事件是SQL_TRACE的扩展,被戏称为"吃了兴奋剂的SQL_TRACE" 有效的追踪级别: ① 0级:SQL_TRACE=FASLE ② 1级:SQL_TRA
理清全表扫描和高水位,行预取的关系
以前写过一篇博客,调侃了一下全表扫,今天继续,感觉对全表扫的认识还是不够:侃侃全表扫 ㈠ 全表扫描与HWM 在Table Access Full中,数据库引擎顺次读取表在HWM下的所有数据块 全表扫描可能是不够理想,特别是表包含大量空的或者接近空的块时 很
深入理解Oracle索引(2):INDEX UNIQUE SCAN,INDEX FULL SCAN和INDEX FAST FULL SCAN
㈠ INDEX UNIQUE SCAN 如果表上有唯一索引, 搜索索引列时会用上INDEX UNIQUE SCAN 原来Index Unique Scan和Index Range Scan在B Tree上的搜索路径是一样的 只是Index Unique Scan在找到应该含有要找的Index Key的block后便停止了搜索,因为该键是唯一的 而Index Range S
深入理解Oracle表(5):三大表连接方式详解之Hash Join的定义,原理,算法,成本,模式和位图
Hash Join只能用于相等连接,且只能在CBO优化器模式下。相对于nested loop join,hash join更适合处理大型结果集 Hash Join的执行计划第1个是hash表(build table),第2个探查表(probe table),一般不叫内外表,nested loop才有内外表 Hash表也就是所谓的内表,探查表所谓的外表 两者的执行计划形如: &nb
一枚菜鸟谈谈对路由器的认识
今儿个,俺们问了自己一个问题,"路由器后面按钮是干什么用的?" OMG,思量半日,遂论之,"那个按钮是用来恢复出厂设置的" 兴之所至,历来是网络菜鸟的俺,痛定思痛,决心发文讨缴 简言之,墙上有一插口,而你有很多用电设备,那么需要买插排,而这个插
深入理解Oracle索引(1):INDEX SKIP SCAN 和 INDEX RANGE SCAN
㈠ Index SKIP SCAN 当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS Skip scan会探测出索引前导列的唯一值个数,每个唯一值都会作为常规扫描的入口,在此基础上做一次查找,最后合并这些查询 例如