join优化
1.left outer join先执行连接操作,再将结果通过WHERE语句进行过滤
select s.ymd,s.symbol,s.price_close,d.dividend
from stocks s
left outer join
dividends d
on s.ymd=d.ymd and s.symbol and d.symbol
where s.symbol="AAPL"
2.left outer join 先执行where过滤,再执行连接操作
select s.ymd,s.symbol,s.price_close,d.dividend
(select * from stocks where symbol="AAPL") s
left outer join
(select * from dividends where symbol="AAPL") d
on s.ymd=d.ymd
3.内连接,可以将过滤条件放到on语句中
4. 将stocks表作为驱动表,虽然在查询中不是位于最后面的
select /*+STREAMTABLE(s)* / s.ymd,s.symbol,s.price_close,d.dividend
from stocks s
left outer join
dividends d
on s.ymd=d.ymd and s.symbol and d.symbol
where s,symbol="AAPL"
5. MAPJOIN 不支持右外连接(right outer join)和全外连接(full outer join)
select /*+MAPJOIN(s)* / s.ymd,s.symbol,s.price_close,d.dividend
from stocks s
JOIN(INNER JOIN)
dividends d
on s.ymd=d.ymd and s.symbol and d.symbol
where s,symbol="AAPL"
6.笛卡儿积不支持优化
select * from stocks join dividends
最新文章
- redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作
- [leetcode] 题型整理之字符串处理
- 深入grootJs(进阶教程)
- python 中文编码问题
- Java Hour2
- ios-UIWebView中js和oc代码的互调
- SKView类
- List 随机排序
- NYOJ 1066 CO-PRIME(数论)
- C#获取周的第一天、最后一天、月第一天和最后一天
- C# Base64方式的编码与解码
- Zookeeper连接eclipse
- mysql中的int和tinyint、varchar和char、DateTime和TimeStamp区别
- part1
- ES6走一波 Iterator
- vc++2010如何新建项目并在控制台打印helloworld
- vuex学习及使用
- ZOJ 3632 K - Watermelon Full of Water 优先队列优化DP
- hdu 1392 Surround the Trees 凸包模板
- js 随机打乱数组
热门文章
- 使用maven如何生成源代码的jar包
- wow64 32位进程中切换64位模式,取回64位寄存器值
- 【tensorflow使用笔记二】:tensorflow中input_data.py代码有问题的解决方法
- 004-windows(64位)下使用curl命令
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_1_字符输入流_Reader类&;FileRead
- Pandas 50题练习
- 测开之路一百一十:bootstrap图片
- OpenResty json 删除转义符
- 剑指offer--day03
- 安全运维 - Windows系统维护