日期:2014-05-16  浏览次数:20988 次

如何提高SQL语句的左连接查询效率
如以下示例,表的记录很多有A,B,C三个表,每个表有6千万条记录,

SELECT
  A.a1,A.a2,B.b1,B.b2,C.c1,C.c2
FROM
  A
LEFT OUTER JOIN B ON B.a1=A.a1
LEFT OUTER JOIN C ON C.a1=A.a1
where A.a2='xxx'


现在用左连接对表进行查询,有什么办法可以将其效率优化???

------解决方案--------------------
觉得速度不够对 对所需要查询的表 以查询条件建立表索引即刻提高查询速度
------解决方案--------------------
因为外连接a表,a表的6千万记录要全显示,要做fts,速度不会快到那里去的。不过b、c表可走索引。你贴个执行计划看看。
------解决方案--------------------
应该可以,子查询能减少关联时的记录数
SELECT
A.a1,A.a2,B.b1,B.b2,C.c1,C.c2
FROM
(select * from A where A.a2='xxx')A
LEFT OUTER JOIN B ON B.a1=A.a1
LEFT OUTER JOIN C ON C.a1=A.a1