ORACLE中的查询转换
一、子查询展开(subquery unnesting)子查询展开分两种:1、要么将子查询中的表或视图拆开来跟外面的表做连接,2、要么不拆开子查询,而是当作一个内嵌视图与外面的表做连接不是所有子查询都会做子查询展开,子查询展开的条件1、子查询展开后的SQL跟原SQL一定要完全等价2、对于子查询不拆开,而是当作一个内嵌视图的子查询展开,改写后的SQL成本之要小于原SQL才行子查询前的where条件是下
ORACLE的游标共享
游标共享(cursor sharing)指的是share cursor的共享做到游标共享很简单,使用绑定变量就可以实现,但是会遇到下面两个问题1、开发人员在开发时,未使用绑定变量,这是如果要用绑定变量,就会大量更改sql.2、使用了绑定变量,但是由于绑定变量窥探的影响,会使某些解析树和执行计划不合时宜针对上面两个问题,分别用两种游标共享来解决1、常规游标共享 ,解决问题1通过参数cursor_sh
ORACLE中的绑定变量
一、绑定变量的作用:variable_name(字母,数字,或者字母数字组合)有效降低硬解析二、绑定变量的典型用法sql中var x number;exec :x :=7876;select * from emp where empno = :x;pl/sql中,例如declare vc_name varchar2(10); begin execut
session cursor 的种类和用法
oracle 中的session cursor分为三种:显式游标(explicit cursor) 隐式游标(implicit cursor) 参考游标(ref cursor)一、隐式游标(implicit cursor) 无处不在,oracle中最常见的游标,只要执行一个SQL或者pl/sql,Oracle就会自动创建一个隐式游标,它的生命周期(open,bind,par
oracle中查看SQL执行计划
查看sql执行计划的执行顺序:先从最开头一直连续往右看,直到看到最右边并列的地方,对不不并列的,靠右的先执行,如果看到并列的,就从上往下看,对于并列的部分,上面的先执行oracle中常见的执行计划一、表的常见执行计划1、table access full2、table access by user rowid3、table access by index rowid二、B tree索引相关的执行计
SQL执行计划查看方法
六种常用的sql执行计划查看
oracle 表连接
oracle 表连接学习概览
all people seem to need date process
all -------application people --presentationseem -----session to ------transportneed ------networkdate ------dat...
权限的with admin option 和with grant option
with admin option 用于system privilege ,他是不级联的例如 SYS : grant create table to A with admin option 然...
约束的deferrable
对于约束我们可以在创建时使用deferrable 来延时该约束起作用例:create table t(a int,b char(10)); alter table t add constraint pk_t primary key(a) deferrable initially deferred; 这...
oracle中的4种insert方式 piovting insert first insert all(分有条件,无条件)
多表INSERT语句1)INSERT...SELECT语句能够作为单个的DML语句的一部分用于插入行到多表中2)多表INSERT语句能够被用在数据仓库系统中从一个或多个操作源转移数据到一组目的表中3)Oracle9i引入下面的多表插入语句的类型...
connect by prior start with 查询树型关系
在SELECT命令中使用CONNECT BY 和蔼START WITH 子句可以查询表中的树型结构关系。其命令格式如下: SELECT 。。。 CONNECT BY {PRIOR 列名1=列名2|列名1=PRIOR 裂名2} [START WITH]; CONNECT...
关于group by 和rollup cube having的用法
group by 可以按照条件进行分组,往往用于有sum ,avg,min,max等函数的使用,例如select manager_id ,sum(salary) from employess group by manager_id,要点是 select 后的column 除了聚合函数,都...
oracle wait event学习(2)
non-idle(非空闲)等待事件,在我们进行数据库的调整时要深入的关注和研究。一些常见的非空闲等待时间如下:1、db file scattered read2、db file sequential read3、buffer busy wait4、free buffer wait5、e...
oracle wait event学习(1)
oracle 从7i开始引入了wait_event ,9iR2是有400个多事件,10g有了800多个,到了11GR2,已经有了1118个,所有的事件都可以在v$event_name这个视图中找到。 oracle的wait_event 分2种,idle和non-idle, ...
hash join ,nested loop join ,sort merge join 3种表连接详解
多表之间的连接有三种方式:Nested Loops,Hash Join 和 Sort Merge Join. 下面来介绍三种不同连接的不同: 一. NESTED LOOP:对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择。在嵌套...
oracle 之路,正式起步
开博了,庆祝一下,接下来就是学习啦crazy study ~oh yeah~[@more@]