2012-01-15 63 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)

相關問題