Oracle优化器简介
CBO Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐用CBO的方式,并且oracle已经声明在oracle9i之后的版本(即oracle 10g),RBO将不再支持. RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。 CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表
存储过程的优缺点
优点:1、存储过程增加了SQL语句的功能和灵活性.存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算.2、可保证数据的安全性和完整性 通过存储过程可以使没有权限的用户在控制之下间接存取数据库,从而保证数据的安全; 通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性.3、在运行存储过程之前,数据库已对其进行了语句和语法分析,并给出了优化执行方案.这种已经编译好的过程可极大的改善SQL语句的性能.由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行.4、可降低
oracle --with by/connect by用法小计
今天无意间想到了一组连续的数(不一定非得是表中的数据) 需按某个规则(比如除以4后换行)被排成多少列,百思不得其解, 最后终于在论坛上找到了答案,如下: eg: 1..100 要按如下方式排序 1 2 3 4 ... 97 98 99 100 解决方法: with t as (select rownum-1 r from dual connect by rownum<25 select from t ---------- ---------- ---------- ---------- as sql> create table t2(id int); SQL> create table t3(id int); SQL> insert into t2 values(1); SQL> insert into t2 values(2); SQL> insert into t3 values(3); S