【发布时间】:2013-11-01 07:42:00
【问题描述】:
我对下表的性能有疑问\
表 A -- 只有 5 个客户 ID(5 行 1 列) 表 B -- 是所有客户及其信息的主库。(100 万行和 500 列)
查询1:-
Select A.*,
B.Age
from A
left join B
on A.Customer_id = B.Customer_id;
查询 2:-
Select a.*,
B.Age
from A
left join
(select Customer_id,age from B) C
on A.Customer_id = C.Customer_id;
这里的主要性能问题是因为表 B 中有 500 列。 我觉得第二个查询更好,因为 SQL 在连接期间不必创建一个包含表 B 中所有列的临时表。
如果有错误请告诉我?
【问题讨论】:
-
在所需列上使用索引使查询运行更快
-
执行计划会告诉你哪个更好。
-
如何查看执行计划?
标签: sql performance oracle join