- 2
- 0
- 约1.61万字
- 约 41页
- 2016-09-15 发布于重庆
- 举报
通过分析执行计划优化SQL
假定A、B、C都是不是小表,且在A表上一个组合索引:A(a.col1,a.col2) ,注意a.col1列为索引的引导列。 考虑下面的查询: select A.col4 from A , B , C where B.col3 = 10 and A.col1 = B.col1 and A.col2 = C.col2 and C.col3 = 5 如果没有执行计划,分析一下,上面的3个表应该拿哪一个作为第一个驱动表?从SQL语句看来,只有B表与C表上有限制条件,所以第一个驱动表应该为这2个表中的一个,到底是哪一个呢? B表有谓词B.col3 = 10,这样在对B表做全表扫描的时候就将where子句中的限制条件(B.col3 = 10)用上,从而得到一个较小的row source, 所以B表应该作为第一个驱动表。而且这样的话,如果再与A表做关联,可以有效利用A表的索引(因为A表的col1列为leading column)。 当然上面的查询中C表上也有谓词(C.col3 = 5),有人可能认为C表作为第一个驱动表也能获得较好的性能。让我们再来分析一下:如果C表作为第一个驱动表,则能保证驱动表生成很小的row source,但是看看连接条件A.col2 = C.col2,此时就没有机会利用A表的索引,因为A表的col2列不为leading column,这样nested loop
您可能关注的文档
最近下载
- 2.工法正文--隧道仰拱下深埋中心水沟与掌子面同步施工工法.doc VIP
- 公安执法中警察执法行为的法律规制.docx VIP
- 5.26甘肃省岷县立林青林沟一带金矿详查实施方案.pdf VIP
- 《学校心理健康教育》第一章 学校心理健康教育概述.pptx VIP
- 毕业设计基于单片机及nRF2401的无线通信模块.doc VIP
- 学校心理健康教育讲义.pptx VIP
- 教学课件 学校心理健康教育--郑希付.ppt
- 2026年赣州市高三(二模)政治试卷(含答案).docx
- 医学课件-Lunar iDXA双能X线骨密度仪的工作原理和维修两例.pptx VIP
- 深度解析(2026)《ISO 155512023石油天然气工业 钻井和生产设备 人工举升用潜油电泵系统》标准解读.pptx VIP
原创力文档

文档评论(0)