SQL优化--使用关联查询代替子查询
SQL优化--使用关联查询代替子查询
测试例子:
子查询:
(select workflowname from workflowbase where id=workflowid) workflowname
from [[zping.com]]] a
where a.operator='402882ed1112669201112a8385892f33'
执行结果:
表 'Worktable'。扫描计数 360,逻辑读取 142334 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'workflowbase'。扫描计数 1,逻辑读取 1589 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 '[zping.com]'。扫描计数 1,逻辑读取 366 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
关联查询:
from [[zping.com]]] a inner join workflowbase b on a.workflowid=b.id
where operator='402882ed1112669201112a8385892f33'
执行结果:
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'workflowbase'。扫描计数 1,逻辑读取 1589 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 '[zping.com]'。扫描计数 1,逻辑读取 366 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
这里:子查询IO次数:142334 +1589+366=144289
关联查询IO次数:1589 +366 =1922
关联查询是子查询的75倍
总结:
使用子查询和关联查询,一般情况下如果能用关联查询就不用子查询,
转载于:https://www.cnblogs.com/zping/archive/2008/08/05/1260978.html
SQL优化--使用关联查询代替子查询相关推荐
- SQL优化(三):子查询和IN,EXISTS用法和优化方法
用法 1. 与IN结合使用 子查询与IN结合使用时,通常通过子查询查询出某个表单列的值,然后作为外层的SELECT的IN查询的数据源,如下,查询今天进行了购物的用户列表,首先通过子查询在订单表t_or ...
- oracle sql 转换成 hive sql -子查询转关联查询(三).子查询中嵌套子查询
其他sql格式也在更新中,可直接查看俺的这个系列,要是没有你需要的格式,可在评论或私信我,俺现在一天一看 Oracle转换hive 其他sql格式也在更新中,可直接查看俺的这个系列,要是没有你需要的格 ...
- mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询
一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...
- 金仓数据库 KingbaseES SQL 语言参考手册 (10. 查询和子查询)
10. 查询和子查询 本章描述SQL查询以及子查询.包含以下章节: 关于查询和子查询 创建简单查询 层次查询 集合操作 查询结果排序 JOIN操作 使用子查询 限制嵌套查询层数 DUAL表查询 10. ...
- 查询优化:SQL优化,关于连多表查询
查询优化:SQL优化 场景:当列表展示的数据来自很多表中的数据时,由于需要实现相关的查询条件,WHERE涉及到每张表时,需要用JOIN连接查询出相关数据(比如查询采购单数据:有采购单.采购单明细.入库 ...
- oracle多表关联查询报表,oracle多表关联查询和子查询
oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...
- sql语句增删改查与子查询
修改表 修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table `demo01` rename `demo02 ...
- MySQL—关联查询与子查询(从小白到大牛)
前言 在大部分的数据库查询中,我们往往都不是进行简单的单表查询,而是多表查询.所以我们也必须学习SQL查询中的高级部分,如内连接.外连接和子查询,通过这些查询技术我们将能够解决项目中复杂的查询问题. ...
- oracle左表关联与又表关联,oracle多表关联查询和子查询
oracle多表关联查询和子查询 一.多表关联查询 例子: SQL> create tablestudent1 ( sidvarchar(3), snamevarchar(6), sagenum ...
最新文章
- 线程了解以及创建线程的Threading模块中的部分方法
- TF2.0—tf.keras.layers.Activation
- 二十三种设计模式[4] - 原型模式(Prototype Pattern)
- JavaBean的实用工具Lombok(省去get、set等方法)
- Apache CXF 框架结构和基本原理
- 《近匠》专访WRTnode创始人罗未——开源硬件如何拥抱物联网
- Mybatis-plus 之sql注入器
- 顶尖量化私募“分家产”!学霸基金经理离职,代码产权归属成看点
- Unity3D游戏开发案例学习——Tanks!(基本完结)
- 必看:C语言高效学习方法(附经典试题详解)
- Golang的Panic和Recover
- go语言的iota是什么意思_golang 使用 iota
- 计算机二级各个科目的区别,计算机二级考试的各个科目的内容及区别
- linux怎么卸载mailx,Linux下mail/mailx命令发送邮件
- 有关关键路径的概念和算法
- hapi入门简介(入门实践)----净土小沙弥学hapi.js_第二篇
- Chino with Equation (隔板法+除法取模)
- java socket一直得不到返回值
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
- CAS latex模板中参考文献使用APA引用格式的解决方案