powerdesigner 怎么关联两张表_【PL/SQL数据库】 三种关联机制 - 执行计划
看完这章你会学习到以下内容:
1. 三种关联分别是什么?
2. 什么时候那个适合用哪个?(总结)
一共有三种关联机制:
Nest Loop 嵌套循环 (大小表)
Sort Merge 排序合并 (添加索引+两张大表)
Hash Join 哈希 (内联)
嵌套循环
对上图进行简单的解释,在进行嵌套循环的时候,通常情况是(大表+小表)的形式,并且会以小表作为内表,因为小表可以常驻内存,这样当进行磁盘IO的时候,只有大表会产生开销;反之,如果因为大表过大,则大表不能常驻内存,内外表的数据均存在与磁盘中,这样,进行磁盘IO开销是非常“可观”的
解释了,谁做内外表的问题后,看下嵌套关联的操作过程:
1.取得要操作的表空间
2.对表空间的记录进行排序
3.通过嵌套循环进行赛选(如果是双表,可能是两个for嵌套)
4.获得需求的记录
归并关联
对与归并关联,有着很好的时间复杂度(如果两个表中的元素已经排序,如果未排序,时间开销可能为XlogX + YlogY + X + Y)。
那么,如何对排序好的元素进行关联呢:
1.首先每张表,会有一个指向头元素的指针
2.两个指针,进行比较,如果相同,则提出该元素
3.比较后续元素,谁小谁先向下移动
4.如此,一直到各自表的结尾
Hash关联(散列关联)
散列关联,则是对表进行散列后(不可超过内存的大小),另外一张表进行匹配;通常来说被散列的依旧是小表,匹配的过程需要匹配全部元素。
以上三种,根据以上三种关联方式,可以大致了解到一定的sql语句的原理以及调优机制,即为什么有的时候会加索引、或者不加、或者改变内外表的关联。总结:
版权声明:本文为CSDN博主「Anger_Coder」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:Study-Hard-数据库连接及实现内部原理(下)_Anger_Coder的专栏-CSDN博客
powerdesigner 怎么关联两张表_【PL/SQL数据库】 三种关联机制 - 执行计划相关推荐
- pl/sql中三种游标循环效率对比
pl/sql中三种游标循环效率对比 - Oracle数据库栏目 - 红黑联盟 http://www.2cto.com/database/201307/224636.html 转载于:https://b ...
- mysql 查询两张表结构相同的数据库_利用反射处理多个表结构相同的数据的查询和数据库表的关联...
最近做一个项目,需要对人口数据进行查询,但是人口数据分布在不同的街道表中,首先进行了数据表结构的统一,每个数据表以街道名开头,然后其他的名字都一样 前期将各个表中的字段也进行了统一 抽象出一张字典表 ...
- mysql查找两表中不同的数据库表_各位大侠怎样查找两张表的里面的数据(这两张表在不同的数据库)...
Oracle: 一.同一个实例中的两个表 相应有两个用户a(表t1).b(表t2) 将用户a的t1查询权限授予b用户 grant select on t1 to b; 之后,b就可以查询t1表了 se ...
- mysql一次查询无关联多个表_面试官:为什么mysql不建议执行超过3表以上的多表关联查询?...
点关注,不迷路:持续更新Java架构相关技术及资讯热文!!! 概述 前段时间在跟其他公司DBA交流时谈到了mysql跟PG之间在多表关联查询上的一些区别,相比之下mysql只有一种表连接类型:嵌套循环 ...
- mysql两表左关联_mysql中一张表LEFT JOIN 左关联两张表语句
先看实例 代码如下 复制代码 SELECT p.price, pd.name, m.manufacturers_name FROM (products p LEFT JOIN products_des ...
- mysql 查询两张表结构相同的数据库_数据库原理习题(含答案)
第一章绪论 Ⅰ.学习要点 1.准确掌握数据.数据库.数据库系统.数据库管理系统等基本术语.概念: 2.数据独立性的概念.分类及实现途径: 3.数据模型的概念.分类.要素及作用: 4.数据库三级模式体系 ...
- java while九九乘法表_用java实现三种方法循环输出九九乘法表:
展开全部 for循环的结构:for(表达式 1:表达式 2:表达式 3) { 循环体 } 表达式 1:一般为赋值表达式:62616964757a686964616fe78988e69d83313 ...
- java同步异步调用_详解java 三种调用机制(同步、回调、异步)
1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...
- mysql比对表中数据是否相同_如何用sql比较两张表数据是否一致?
在批量程序的测试中,经常会涉及到对数据库表的测试,今天我们来介绍一下用sql比较两张表结构相同的表数据是否完全一致的方法. 1.inner join 浅尝 提到比对两张表的数据是否完全相同,很容易想到 ...
最新文章
- IMXRT10xx MDK 编译器AC5 升级AC6
- Azure SQL 数据库引入了新的服务级别
- FI_ITEMS_MASS_CHANGE 批量更新 凭证文本 (凭证被锁、一些项目没更改到的解决方法)
- P1351 联合权值
- 单例模式,双重检查实现线程安全
- idc服务器管理系统勇士水花,idc管理系统
- 【学习笔记】数据链路层——随机访问介质访问控制(ALOHA、CSMA、CSMA/CD、CSMA/CA),截断二进制指数规避算法
- excel插入一列日期 pandas_在Excel目标列插入日期控件的方法
- MaxCompute Studio使用心得系列3——可视化分析作业运行
- C/C++位域知识小结
- atitit.userService 用户系统设计 v6 q413
- 读书笔记之深入理解Java虚拟机
- Windows XP sp3上可以安装SQL Server 2008企业版?
- php7.2 加密,php 7.2 aes 128 ECB 加密
- 638-字符串模式匹配-KMP算法
- 学python对数学要求高吗_想要学好python编程一定要求数学要好吗?
- Zookeeper-Paxos-屁民的故事-内含视频讲解
- MAK VR-Forces 3.7
- 苹果双系统 计算机意外的重新启动,用Boot camp 安装双系统时突然重启,打… - Apple 社区...
- unity给定两个点和中间点的其中一个坐标比如z坐标,求该点的坐标
热门文章
- 《R语言与统计分析》-参数的假设检验
- 联想启天m420刷bios_联想启天M420装Win7系统教程包括BIOS设置和USB驱动
- vce 题库导入_Visual CertExam(VCE)试题制作教程 -
- LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程
- Photoshop制作个性的透明玻璃网页用户信息
- 2022-2028年全球与中国飞机轮胎行业发展趋势及竞争策略研究
- 量化策略指引:Alpha也有周期?
- 前端路线--Vue(day01)
- 常用的几种在线地图(天地图、百度地图、高德地图)坐标系之间的转换算法
- 做网站是否一定需要seo