2013-12-19 129 views
0

我正在執行一個具有50k記錄的數據庫的靜態查詢。它需要2分鐘才能執行。 有沒有機會通過使查詢動態改進查詢性能? 我正在使用開放式邊緣10.2版本和Oracle數據庫。靜態查詢與動態查詢性能正在進行4GL

+3

只要製作動態查詢你絕對不會提高其性能。 50k沒有那麼多的記錄。提供該查詢,您嘗試改進的性能以及解釋計劃也是一個好主意 –

回答

1

不,動態查詢在性能上最好與靜態查詢相等。如果您確實嘗試了動態查詢,請確保僅設置FORWARD-ONLY。否則,需要在客戶端上維護一個結果集,以便(可能)在查詢中向後移動,這會降低性能。

對於50,000條記錄,兩分鐘更有可能成爲索引選擇問題。您的WHERE子句可能不會適當地包圍數據。您可能還會有一個(非常)嚴重調整的數據庫或服務器。

0

散裝收集應提高性能(雖然如其他人所說的已經有可能是另一個問題與索引/查詢等)

select <fields> bulk collect into <table_type> from <table> where <things are true>