【oracle开发】oracle中的with table as用法

 时间:2024-10-17 09:47:11

1、语法:WITHsubquery_nameAS(the aggregation SQL statement)SELECT(query naming subquery_name);

【oracle开发】oracle中的with table as用法

2、创建测试表tbl1、tbl2,往tbl1里插入2条数据,往tbl2里插入1000000条数据

【oracle开发】oracle中的with table as用法
【oracle开发】oracle中的with table as用法

3、此时我们单看一下全表扫描tbl2时的情况。通过下图,我们看到单对tbl2全表扫描时的逻辑读为6911

【oracle开发】oracle中的with table as用法

4、下面我们构造一个相关子查询,看看这个查询的执行计划。通过下图我们看到tbl2表被访问了2次,同时逻辑读也达到了2w+

【oracle开发】oracle中的with table as用法

5、下面我们用with table as 的语法重新构造该查询。通过下图可以看到tbl2只被读取了一次,但是比较之前的SQL多了600+的db block gets和physical reads,这两部分的逻辑读和物理读是构造临时表时产生的,而后面对临时表访问了两次,逻辑读是9000+,较之前的SQL 2w+多的逻辑读,还是稍好一些。

【oracle开发】oracle中的with table as用法
  • iphone卡死不能强制重启
  • 如何解决python2和Python3共存的问题
  • notepad++如何设置文字右对齐
  • IE11浏览器怎么设置启用标签页分组功能?
  • Ultra Edit的列模式
  • 热门搜索
    关于环保手抄报的内容 关于校车的手抄报 文明餐桌手抄报 安全手抄报内容大全 预防登革热手抄报 小学生国庆手抄报 寻根乡愁手抄报 简单的手抄报 快乐阅读手抄报内容 关于我爱读书手抄报