2011-05-27 75 views
0

我想從一個表中獲取非常大的數據。 我正在使用Java Webobject和EOmodel。 雖然我正嘗試使用索引列進行讀取,但我能夠在不到2秒的時間內得到結果。但是當我試圖用其他列進行搜索時,它幾乎需要30+秒。 通過EOmodel打的查詢,我直接用JDBC獨立打印,它在1.5秒內獲取結果。有關使用EO模型優化查詢的任何建議?

任何在fetch規範中設置任何標誌以便快速獲取結果的建議。

感謝提前:)

回答

1

是什麼由生成的SQL的差別EOF取指令相比,你JDBC的獲取?

結果中有多少項? (如果有數十個,那麼時間可能會從原始SQL結果轉換爲EOEnterpriseObjects)。

在您的EOFetchSpecification上嘗試setFetchesRawRows(true),如果結果集很大,可能會給您一個與JDBC提取類似的結果。最後,如果您在數據庫上啓用了緩存,並且爲了進行比較而在EOF提取後運行了JDBC提取,則JDBC提取可能只是從SQL緩存中獲取緩存的結果。底線,你沒有提供足夠的信息給任何人提供真正有針對性的建議。

+0

我在SQL提取和JDBC提取中所做的唯一區別就是日期格式。在SQL提取我給 – neo 2011-05-27 14:04:41

+0

感謝您的幫助:)只有差異我在SQL提取和JDBC提取是日期格式。在SQL提取我給'dd-MMM-yyyy'日期和在EO生成的查詢我傳遞日期對象它將轉換爲'星期五5月27日00:00:00 PDT 2011'日期格式。確認時間僅用於設置實體我從plist的類屬性和實體類中刪除除兩個以外的所有列。仍然需要30-40秒。有沒有辦法從rawrows中獲取實體對象。我試着打擊粗魯。其快速近2秒。 – neo 2011-05-27 14:15:14

+0

我會嘗試不同的提取與JDBC確認是真正的緩存。 – neo 2011-05-27 14:17:40