在以下两个查询之间,性能和输出方面是否有任何基本差异?
select * from table1
left outer join table2 on table1.col=table2.col
and table2.col1='shhjs'
和
select * into #temp from table2 where table2.col1='shhjs'
select * from table1 left outer join #temp on table1.col=#temp.col
这里table2有大量的记录,而#temp的数量较少。
答案 0 :(得分:0)
是的,有。第二种方法是在临时数据库中实现一个表,这需要额外的开销。
第一种方法不需要这样的开销。而且,它可以更好地优化。例如,如果table2(col, col1)
上存在索引,则第一个版本可能会利用它。第二个不会。
但是,您始终可以使用您的数据在系统上尝试两个查询,并确定一个查询是否明显优于另一个。