2012-01-15 66 views
-1

哪个是oracle查询最快的?

select * from customers where id = 1; 
select * from customers where id = 2; 

select * from customers where id in(1,2); 

哪个更快?

+1

试试吧。看看解释计划。 – Mat 2012-01-15 20:04:55

+0

取决于您的索引 – Avitus 2012-01-15 20:05:22

+2

第一个返回两个集合,每个集合包含一行。第二个返回一个包含2行的集合。他们没有给出相同的结果,因此比较他们是没有意义的。需要更多的上下文来解决一个有意义的问题。 – 2012-01-15 20:15:00

回答

5

第一个实际上是两条语句,导致您将两个往返传送到数据库。 第二个很可能会更快,因为它只是一个声明。

0

这真的是你想要确定的吗?你问是否一趟旅程返回两行还是两趟返回一行?如果那是问题,那么我同意评论 - 尝试,评估并比较。

如果你试图让这种事情有效,那么你应该看看使用绑定变量。如果你的问题真的意味着它说的话,那么这里可能会有任何答案。

0

“更快”的任何问题总是取决于数据库的细节。我真的没有什么可以补充plhmhck和MJB关于你正在谈论2个查询与1个查询的事实。

但要注意的优化通常会(总是?)重写WHERE id IN (1,2)WHERE (id = 1 OR id = 2)

相关问题