知识大全 Oracle9i数据库WITH查询语法小议

Posted 语句

篇首语:成年人的平和,一半是理解,一半是算了。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle9i数据库WITH查询语法小议相关的知识,希望对你有一定的参考价值。

Oracle9i数据库WITH查询语法小议  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Oracle i新增了WITH语法功能 可以将查询中的子查询命名 放到SELECT语句的最前面

  下面看一个简单的例子:

  

>

  通过WITH语句定义了两个子查询SEG和OBJ 在随后的SELECT语句中可以直接对预定义的子查询进行查询 从上面的例子也可以看出 使用WITH语句 将一个包含聚集 外连接等操作SQL清晰的展现出来

  WITH定义的子查询不仅可以使查询语句更加简单 清晰 而且WITH定义的子查询还具有在SELECT语句的任意层均可见的特点

  即使是在WITH的定义层中 后定义的子查询都可以使用前面已经定义好的子查询:

  

>

  利用WITH定义查询中出现多次的子查询还能带来性能提示 Oracle会对WITH进行性能优化 当需要多次访问WITH定义的子查询时 Oracle会将子查询的结果放到一个临时表中 避免同样的子查询多次执行 从而有效的减少了查询的IO数量

  看一个简单的例子 首先构造一张大表 现在要取出大表中ID最小 ID最大以及ID等于平均值的记录 看看普通写法和WITH语句的区别:

  

>

  

  为了避免第一次执行时物理读的影响 查询结果选取了SQL的第三次运行 物理读为 时的统计信息

  观察执行计划可以看到 先后对T_WITH表进行了 次全表扫描 并产生了 个逻辑读 下面看看WITH语句的表现:

>

  观察这次的执行计划 发现只对T_WITH表进行了两次全表扫描 而从逻辑读上也可以观察到 这次只产生了 的逻辑读 正好是上面不使用WITH语句的一半

  通过分析执行计划 Oracle执行了WITH子查询一次 并将结果放到了临时表中 在随后对子查询的多次访问中 都从临时表中直接读取了数据 这应该也是那 个物理读的由来

  通过上面的例子可以看到 将子查询放到WITH语句中不仅可以简化查询语句的结构 对于子查询需要多次执行的情况 还有可能提示查询的性能

  可惜的是 WITH语句只能用在SELECT语句中 UPDATE和DELETE语句不支持WITH语法:

  

> cha138/Article/program/Oracle/201311/18491

相关参考

知识大全 怎样使两台服务器的oracle9i的数据同步

  高机复制就是物化视图  物化视图是包括一个查询结果的数据库对像它是远程数据的的本地副本或者用来生成基于数据表求和的汇总表物化视图存储基于远程表的数据也可以称为快照    物化视图可以查询表视图和其

知识大全 Oracle9i 的查询优化

Oracle9i的查询优化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  执行概要  本文描述了

知识大全 checkpoint小议

  什么是checkpoint?     checkpoint是一个数据库事件它将已修改的数据从高速缓存刷新到磁盘并更新控制文件和数据文件     什么时候发生checkpoint

知识大全 小议数据库主键选取策略

  我们在建立数据库的时候需要为每张表指定一个主键所谓主键就是能够唯一标识表中某一行的属性或属性组一个表只能有一个主键但可以有多个候选索引因为主键可以唯一标识某一行记录所以可以确保执行数据更新删除的时

知识大全 SQL联合查询(内联、左联、右联、全联)的语法

SQL联合查询(内联、左联、右联、全联)的语法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  概

知识大全 Oracle9i 数据库管理实务讲座(五)-手动建立 Oracle9i 数据库

Oracle9i数据库管理实务讲座(五)-手动建立Oracle9i数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 Oracle9i 数据库管理实务讲座(四)-Oracle9i 数据库实体结构

Oracle9i数据库管理实务讲座(四)-Oracle9i数据库实体结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 Oracle9i 数据库管理实务讲座(六)-利用 DBCA 建立 Oracle9i 数据库(1)

Oracle9i数据库管理实务讲座(六)-利用DBCA建立Oracle9i数据库(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布

知识大全 Oracle9i数据库设计指引全集一

Oracle9i数据库设计指引全集一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库物理设

知识大全 Oracle9i 数据库管理实务讲座(四)

Oracle9i数据库管理实务讲座(四)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Orac