表连接的方法+使用表连接而不是多个表查询+from字句表的顺序
来源:互联网 发布:windows10 mac主题 编辑:程序博客网 时间:2024/06/06 03:17
表连接的方法
使用表连接而不是多个表查询
1执行表连接比多个表查询效率更高,因为执行每条sql语句,oracle内部会执行很多工作。比如解析SQL语句,估算索引的利用率,绑定变量,读取数据块等,所以检索访问SQL语句的执行次数
2尽量减少表的查询次数:可以使用一次查询的数据,尽量不要使用多次查询获得。
验证
select empno,deptno,ename from emp where deptno in(select deptno from dept where loc='NEW YORK');select e.empno,e.deptno,e.ename from emp e inner join dept d on d.deptno=e.deptno where d.loc='NEW YORK';
from字句表的顺序
1oracle解析器处理from字句的表时,按照从右到左的顺序,最后指定的表优先被oracle处理,oracle将它作为驱动表(driving table),并且对该表的数据进行排序。之后再处理倒数第二个表;最后将所有从第二个表中检索出来的纪录与第一个表中的合适纪录进行合并。
2建议:使用表连接查询时候,纪录行数最少的表放在最后,最为驱动表。
验证
emp 有14条纪录,dept有4条纪录
数据太多不好截图
SQL> select e.empno,e.ename ,d.deptno,d.dname
2 from dept d,emp e;
已用时间: 00: 00: 00.05
SQL> select e.empno,e.ename ,d.deptno,d.dname
2 from emp e ,dept d;
已用时间: 00: 00: 00.03
where字句的连接顺序
1.oracle采用从右向左(从下到上)的顺序解析where字句,所以表之间的连接应该写在其他where 条件之前,可以过滤掉最大数量纪录的条件应该写在where 字句的最后面.
验证
select e.empno,e.deptno,e.ename from emp e,dept d where d.deptno=e.deptno and d.loc='NEW YORK' ;select e.empno,e.deptno,e.ename from emp e,dept d where d.loc='NEW YORK' and d.deptno=e.deptno ;
阅读全文
0 0
- 表连接的方法+使用表连接而不是多个表查询+from字句表的顺序
- 表的连接顺序
- 表的连接查询
- 数据库的多表连接查询方法
- 多表查询的分类,连接查询,内连接,外连接,交叉连接,子查询
- sql 表的连接查询
- 数据库表的连接查询、子查询
- Sql Server表连接查询的方法和性能探讨
- Ado.net连接数据库查询表信息的多种方法
- SQL两个表连接查询去掉重复数据的方法
- SQL优化:表的连接顺序
- HAVING字句的使用
- 使用表的自连接来实现层次化查询
- 【读书笔记】【收获,不止Oracle】不同连接类型表下,驱动顺序对查询性能的影响
- MySQL使用连接查询的方式查询(连接3个表,并使用COUNT内置函数)
- 多表连接查询的理解
- Sqlserver的表连接查询处理方式
- oracle两个表连接的分段查询
- .idea文件
- 容器与算法
- 非零基础新手学编程的路径及注意事项
- C语言数据结构——遍历二叉树
- 使用Tomcat安装版启动项目
- 表连接的方法+使用表连接而不是多个表查询+from字句表的顺序
- STL map常用操作
- 精通Dubbo——dubbo2.0源码中的设计模式与SPI介绍
- 【Oracle】——虚拟机安装
- 历经沧桑,唯有研究心静自然
- Add to List 563. Binary Tree Tilt
- 【ubuntu-torch7-problem】Gtk-Message: Failed to load module "canberra-gtk-module"
- JavaScript浏览器对象
- 数组中字符出现的次数问题