我正在使用我們的Web應用程序處理一些Oracle性能問題。有一件事我注意到,似乎混淆了任何類型的測試,但返回大量結果的簡單查詢仍然非常緩慢。一個例子是:Oracle - 爲什麼SELECT * FROM Foo;太慢了?
select * from TPM_PROJECTWORKGROUPS;
當我運行它,我得到:
5825 record(s) selected [Fetch MetaData: 0ms] [Fetch Data: 59s]
[Executed: 9/22/2011 1:52:38 PM] [Execution: 203ms]
如果我理解這個正確的,這意味着實際查詢了203ms運行,但它花了59秒該數據被退回到客戶端,這是「取」在這種情況下意味着什麼?
我無法直接連接到數據庫機器並在本地運行查詢,但假設罪魁禍首是實際的網絡帶寬本身是否安全?這是有道理的,因爲我在西雅圖,服務器在紐約,但對於5800行仍然是一分鐘似乎是非常緩慢的通過。
是否有任何快速建議:a)確認網絡帶寬確實是問題; b)任何「疑難雜症」或檢查爲什麼通過線纜串行化數據太慢的原因?謝謝!
基於評論一些更新:
SELECT COUNT(*)FROM(SELECT * FROM TPM_PROJECTWORKGROUPS)噸;
結果:
1 record(s) selected [Fetch MetaData: 0ms] [Fetch Data: 0ms]
[Executed: 9/22/2011 2:16:08 PM] [Execution: 219ms]
如果我嘗試選擇只有一個列:
SELECT專案編號FROM TPM_PROJECTWORKGROUPS;
結果:選擇
5825結果[取的元數據:0毫秒] [獲取數據:1米0]
[執行時:2011/9/22二點17分20秒PM] [執行:203ms]
表架構:
專案編號(NUMBER) WORKGROUPID(NUMBER)
你確定TPM_PROJECTWORKGROUPS是一張表而不是視圖嗎? – MusiGenesis
一排的大小是多少?任何CLOB/BLOB? – muratgu
嘗試'SELECT COUNT(*)FROM(select * from TPM_PROJECTWORKGROUPS)t;'看看是否有很大的差異 –