9 join方法--优化主题系列
来源:互联网 发布:三维立体设计软件 编辑:程序博客网 时间:2024/06/05 08:45
出个题目:在一个高并发环境下SQL优化重要不??为什么??
假设在没有并发的情况下一个SQL逻辑读是1000并不大对吧
假设现在有50个并发是不是很容易产生CR block??而且很多个??
此时是不是有可能50个并发会修改1000个block中的500个block??
此时的逻辑读是不是由1000变成几万了??况且仅仅是一个SQL
有50个并发没提交只能从UNDO里面读数据现在修改了500个块50*500+500
也就是说在高并发的环境下 SQL优化非常重要
高并发环境下逻辑读可能是普通情况下的10倍以上
同一个时刻能不能3个表进行JOIN??
表(结果集)与表(结果集)之间的连接方式非常重要,如果CBO选择了错误的连接方式,本来几秒就能出结果的SQL可能跑一天都跑不完。如果想要快速定位超大型SQL性能问题,就必须深入理解表连接方式。在多表JOIN的时候,只能是2个表先JOIN,JOIN之后的结果再和其他表/结果集关联,也就是说任何时候都是只能2个表在做JOIN。
什么情况下不走NL??
首先走HASH JOIN是不是都只扫描1次??
走HASH JOIN被驱动表只扫描一次??
假设被驱动表 10GB 多块读16 块大小8KB要进行多少次I/O能读完??
如果FULLTABLE ACCESS??
10*1024*1024/16/8=8W 多次I/O对不对??
现在我们来走NL 是不是要走索引??
走索引扫描的I/O次数小于8W次走NL就合适如果超过8W次就错了
但是走 NL是单块读
假设索引的块里面存放100条一个块高度是38W*100/2是不是也很大??
带着如上疑问,下面分章节介绍
普通连接:嵌套循环(NESTEDLOOP)、哈希连接(HASHJOIN)、排序合并连接(SORTMERGE JOIN)及
特殊连接:笛卡尔积(CARTESIAN)、外连接(hashjoin outer)、半连接(semi-join)、反连接(anti-join)。
- 9 join方法--优化主题系列
- 11 哈希连接(HASH JOIN)--优化主题系列
- 12 排序合并连接(SORT MERGE JOIN)--优化主题系列
- 14 外连接(hash join outer)--优化主题系列
- 15 半连接(semi-join)--优化主题系列
- 16 反连接(anti-join)--优化主题系列
- 3 直方图--优化主题系列
- Java多线程系列-join方法
- 2 基数与选择性--优化主题系列
- 4 聚簇因子--优化主题系列
- 5 统计信息--优化主题系列
- 6 执行计划--优化主题系列
- 7 访问路径概述--优化主题系列
- 8 访问路径介绍--优化主题系列
- 13 笛卡尔积(CARTESIAN)--优化主题系列
- 18 索引扫描成本计算--优化主题系列
- 19 嵌套循环成本计算--优化主题系列
- 23 查看真实基数--优化主题系列
- O'Reilly人工智能大会将于2018年4月10-13日来到北京:讲师征集开始
- localStorage存储
- 图片与Base64之间的互转
- Redis 数据同步机制分析
- 文件或目录损坏且无法读取——硬盘修复
- 9 join方法--优化主题系列
- Oracle子查询
- Linux-文件基本属性
- 应用程序缓存
- AES加密的四种模式详解
- 字符串根据逗号截取
- MFC,将debug配置为release、mfu140ud.dll丢失、#include _AFXDLL 、No such file or directory
- jquery总结--学习笔记(1)
- JavaScript -- 03 数组