两个表的关联,一个大表,一个小表,哪个做驱动表性能好?

[复制链接]
查看11 | 回复9 | 2016-2-2 09:36:33 | 显示全部楼层 |阅读模式
两个表的关联,一个大表,一个小表,哪个做驱动表性能好?
如何知道哪个是驱动表?
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
优化器自己选择, 看执行计划
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
执行计划里怎么看哪个是驱动表?
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
OUTER TABLE吧
[ 本帖最后由 diablo2 于 2008-1-22 23:29 编辑 ]
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
OUTER TABLE 先访问,并且访问一次
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
"驱动表是在使用多表嵌套连接时,会先全表扫描该驱动表,然后驱动表返回的结果集中一行一行去匹配被驱动表(可以利用索引),所以我们会选择小表做为驱动表,而被驱动使用索引进行连接。对于基于规则的优化系统,驱动表在FROM后是有次序设置的,而在基于成本的优化,ORACLE会选择最合适的驱动表。
"
so seems 驱动表=outer table...
there's no simple way to estimate which table db2 will pickup as outer table, it is based on cost estimation.... usually db2 will pickup the table with less rows as outer table... but still, in reality it's based on cost model, not a simple rule like "always pick the table with less rows as outer table"....
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
我说呢,驱动表听着那么熟悉,DB2里又没有相关内容
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
long long ago
当 oracle 还是主要用 RBO 的时候,驱动表的大小会对整个执行效率产生比较大的影响,现在 Oracle 早已经采用 CBO 了,所以优化器会自动选择最合适的执行计划 。
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
但是在oracle中还是建议用RBO的规则来写sql!
有时候把驱动表放到from的第一位性能会提高很多!虽然oracle已经不推荐RBO 的执行计划了!
回复

使用道具 举报

千问 | 2016-2-2 09:36:33 | 显示全部楼层
原帖由 myfriend2010 于 2008-1-22 09:34 发表
但是在oracle中还是建议用RBO的规则来写sql!
有时候把驱动表放到from的第一位性能会提高很多!虽然oracle已经不推荐RBO 的执行计划了!


oracle 也推荐用cbo了吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行