2011-07-23 24 views
0

我在通過表格進行訂單時遇到問題。通過查詢非常慢的Oracle訂單

我的選擇查詢工作正常,但是當我通過(甚至在主鍵上)進行排序時,它只是繼續前進而沒有結果。最後我需要殺掉這個會話。該表有20K條記錄。 對此有何建議? 查詢是:

SELECT * FROM Users ORDER BY ID; 

我不是瞭解查詢計劃,因爲我是新來的Oracle

+0

首先,您可以發佈查詢和查詢計劃嗎?在殺死它之前查詢運行了多長時間?查詢返回多少行? –

+0

@Justin Cave:SQL Developer甚至在20分鐘後才顯示加載圖標。所以我需要選擇左邊的 – user367134

+0

確定。你是否編輯你的問題來添加查詢和查詢計劃?那麼返回的行數呢? –

回答

0
  1. 對於無序查詢,在SQL開發人員檢索和顯示20K行,或只是取消50?你的比較可能不公平。
  2. 這些20K行的大小是多少:select bytes/1024/1024 MB from user_segments where segment_name = 'USERS';我見過很多情況,其中幾兆字節的數據使用很多千兆字節的存儲空間。也許之前的數據非常大,有人刪除它(這不會刪除空間)。或者,也許有人用APPEND提示一次插入這些行1,並且每行都佔用一個整塊。
  3. 您的查詢可能正在等待更多臨時表空間進行排序,請查看DBA_RESUMABLE。