3
我懷疑以下查詢的速度和結果。任何人都可以給我解釋他們嗎? (這些查詢爲Oracle數據庫編寫)SELECT MAX(col_name)和ROWNUM = 1之間的性能
假設我有一個表table1(ID,itemID,trnx_date,balance,...)。我想獲得一個項目的最新餘額。
查詢1:
SELECT平衡FROM表1 WHERE ID =(SELECT從表1 MAX(ID)WHERE ITEMID = ITEM_ID);
問題2:
SELECT平衡FROM表1 WHERE ITEMID = ITEM_ID AND ROWNUM = 1 ORDER BY ID DESC;
其中ITEM_ID是變量。
因此,這兩個查詢是否給出了相同的結果?哪一個更快?還是有其他查詢比他們更快?
感謝
感謝Eric的回答,但據我所知,select語句的進程順序是FROM,WHERE,ORDER BY,SELECT。因此,當發現條件時,它會停止查找記錄(因爲ROWNUM = 1),然後對結果進行排序,所以結果將不會相同。我測試了另一個表數據,結果是不同的! – 2009-07-04 03:14:36