日期:2014-05-17  浏览次数:20712 次

select 字段的问题
a 表 30几个字段
b 表 40几个字段

两个表中有几个字段存放的数据是一样的。


从一个表中去 3个字段
select a.Col1, a.Col2, a.Col3
from a,b
where a.key = b.key

从两个表中取 3个字段
select a.Col1, a.Col2, b.Col3
from a,b
where a.key = b.key
那种性能好,
数据量大的情况下,速度有多明显提升吗。

------解决方案--------------------
应该差不多的,因为要做关联,数据量大的时候,oracle会选择用hash_join,对两个表都要全表扫描。
你实际测一下就知道了。
------解决方案--------------------
如果说真有区别。那应该是select a.Col1, a.Col2, a.Col3
from a,b
where a.key = b.key要好些吧。至少在内存中取数时,一个表中的数据集中度要高些。避免了寻址方面的时间
------解决方案--------------------
时间差不多

都是先扫表a,b 然后关联a.key = b.key 从结果中提取想要的字段