from后表的顺序

[复制链接]
查看11 | 回复6 | 2008-2-13 12:43:03 | 显示全部楼层 |阅读模式
a表有3000万记录,b表有100万数据,
一.
insert into....
select a.col_a,col_b
from a,b
where a.col_a = b.col_b
耗时50分钟
二.
insert into....
select a.col_a,col_b
from b,a
where a.col_a = b.col_b
只耗时10分钟
正常都是小表放后面,但这时大表放后面反而快很多,不知何故啊??
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
主要看执行计划,你把2中写法的执行计划贴上来,让大家看看.
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
还是要看实际的执行计划,看哪个是驱动表
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
难道没有一个规则, 如果这样,每次都要测试一下哪种写法速度快,很烦。
我一般都是觉得速度慢时才来研究写法问题。
请高人指点。
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
最初由 little_monkey 发布
[B]难道没有一个规则, 如果这样,每次都要测试一下哪种写法速度快,很烦。
我一般都是觉得速度慢时才来研究写法问题。
请高人指点。 [/B]

有规则,但这个规则逐渐的被cbo取代了.
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
和表里的数据也有关系,还是结合执行计划来定吧。
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
看来一个好的设计对于开发来说真的很重要.
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行