Nested loops、Hash join、Sort merge join(三种连接类型原理、使用要点)
nested loop 嵌套循环(原理):oracle从较小结果集(驱动表、也可以被称为outer)中读取一行,然后和较大结果集(被侦查表,也可以叫做inner)中的所有数据逐条进行比较(也是等值连接,也可以是非等值连接),如果符合规则,就放在结果集中,然后取驱动表的下一条数据继续循环,直到结束。简单的理解就是:从A表抽一...
Merge into使用详解( 同时执行inserts和updates操作 )
Merge是一个非常有用的功能,类似于MySQL里的insert into on duplicate key.Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表的数据插入A...
LINUX下为ORACLE数据库设置大页--hugepage
在Linux中配置hugepage可以提高oracle的性能,减少oracle sga的页交换,类似于aix中的lagepage。为什么 使用大页?LINUX内存的默认块大小是4K如果SGA为:128Gselect 128*1024*1024/4 from dual;33554432个(三千多万),select 128*1024/2 from dual; 65536个每个内存页,有一个页表项(大概10个字节)...
latch cache buffers chains故障处理总结
一大早就接到开发商的电话,说数据库的CPU使用率为100%,应用相应迟缓。急匆匆的赶到现场发现进行了基本的检查后发现是latch:cache buffers chains 作祟,处理过程还算顺利,当时忘了记录log,这里总结下处理思路,以便下次查看。故障分析思路 查看等待事件,判断故障起因SQL>select * from(select si...
DB time VS DB CPU
如何行之有效地展示系统负载在做系统调优的时候是必不可少的技巧。通常我们会使用Oracle提供的Time Model,比如我们需要作出类似于下面这样的趋势图来展示系统负载的高低。 这样的趋势图可以直接使用Oracle10g以后的OEM得到,也可以将SQL结果传入Excel中作出趋势图,这里并不是想说如何作出这样的图来,而是想说在我...
B-Tree索引与Bitmap位图索引的锁代价比较研究
通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的“高昂代价”。位图索引会带来“位图段级锁”,实际使用过程一定要充分了解不同索引带来的锁代价情况。1.为比较区别,创建两种索引类型的测试表1)在表t_bitmap上创建位图索引SEC@ora11g> create table t_bitmap (idnumber(10), name varchar2(10),sex v...
B-index、bitmap-index、text-index使用场景详解
索引的种类:B-tree索引、Bitmap索引、TEXT index1. B-tree索引介绍: B-tree 是一种常见的数据结构,也称多路搜索树,并不是二叉树。B-tree 结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。适用场景:索引字段有着很高的selectivity或者结果集很小的时候。例如 身份证号码 手机...
AWR分析(shared_pool,sga_size大小设置)
Execute to Parse 指标反映了执行解析比 其公式为 1-(parse/execute) , 目标为100% 及接近于只 执行而不解析 在oracle中解析往往是执行的先提工作,但是通过游标共享 可以解析一次 执行多次, 执行解析可能分成多种场景: 1.hard coding => 硬编码代码 硬解析一次 ,执行一次, 则理论上其执行解析比 为 ...
10046事件跟踪会话sql
背景知识:10046 事件按照收集信息内容,可以分成4个级别: Level1: 等同于SQL_TRACE 的功能 &nbs...
SQL Tuning Advisor的使用
SQL>create user liushiming identified by liushiming;Usercreated.SQL>grant connect,resource to liushiming;Grantsucceeded.SQL>grant advisor to liushiming;Grantsucceeded.SQL>conn liushiming/liushiming;Connected.SQL>create table bigta...
DBA_TAB_MODIFICATIONS数据字典的变化
SQL>create user liushiming1234 identified by liushiming1234defaulttablespace users; Usercreated.SQL>grant connect,resource to liushiming1234 ;Grantsucceeded.SQL>create table liushiming1234.test1234 (inumber);Tablecreated....
绑定变量好在哪
清空共享池,关闭/重启DBSQL>shutdown immediate;Databaseclosed.Databasedismounted.ORACLEinstance shut down.SQL>startup;ORACLEinstance started.TotalSystem Global Area 419430400 bytesFixedSize ...
DBA_TAB_MODIFICATIONS数据字典的变化
SQL>create user liushiming1234 identified by liushiming1234defaulttablespace users; Usercreated.SQL>grant connect,resource to liushiming1234 ;Grantsucceeded.SQL>create table liushiming1234.test1234 (inumber);Tablecreated....
Logminer的使用
SQL>@/dat/DBSoftware/oracle/product/10.2.0/db_1/rdbms/admin/dbmslm.sql------用来创建DBMS_LOGMNR包,该包用来分析日志文件Packagecreated.Grantsucceeded.SQL>@/dat/DBSoftware/oracle/product/10.2.0/db_1/rdbms/admin/dbmslmd.sql------用来创建DBMS_LOGMNR_D包,该包用来创建数...
SQL Tuning Advisor的使用
SQL>create user liushiming identified by liushiming;Usercreated.SQL>grant connect,resource to liushiming;Grantsucceeded.SQL>grant advisor to liushiming;Grantsucceeded.SQL>conn liushiming/liushiming;Connected.SQL>create table bigta...
AWR和ADDM联合使用
AWR报表(略),拿之前的AWR为例运行ADDMSQL>@/dat/DBSoftware/oracle/product/10.2.0/db_1/rdbms/admin/addmrpt.sqlCurrentInstance~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance----------------------- ---...
AWR报告的生成
--产生整个数据库的AWR报告,运行脚本awrrpt.sql。 @$ORACLE_HOME/rdbms/admin/awrrpt.sql --产生某个实例的AWR报告,运行脚本awrrpti.sql。 @$ORACLE_HOME/rdbms/admin/awrrpti.sql --产生某条SQL语句的AWR报告,运行脚本awrsqrpt.sql。 @$O...
基线
创建基线基线(baseline)是一种机制,这样你可以在重要时间的快照信息集做标记。一个基线定义在一对快照之间,快照通过他们的快照序列号识别.每个基线有且只有一对快照。一次典型的性能调整实践从采集量度的基准线集合、作出改动、然后采集另一个基准线集合开始。可以比较这两个集合来检查所作的改动的效果。在 AWR...
快照
每隔一小时,内存监控进程(MMON)自动地采集一次统计信息,并把这些信息存放到负载库中,一次采样就是一个快照。为了节省空间,采集的数据在7天后自动清除。快照的频率和保留时间可以由用户修改。--查看快照的频率和保留时间(默认为每1小时采样一次,采样信息保留时间为7天) select * from dba_hist_wr_cont...
AWR报表的启用
在默认情况下,Oracle启用数据库统计收集这项功能(即启用AWR)。是否启用AWR由初始化参数STATISTICS_LEVEL控制。通过SHOWPARAMETER命令可以显示STATISTICS_LEVEL的当前值:SQL> SHOWPARAMETER STATISTICS_LEVEL SQL语句的执行结果是:NAME ...