2010-04-08 14 views
1

我只是想給你一個小背景關於如何從oracle10g中提取600萬條記錄的建議?

  1. 需要寫一個PL-SQL,這將浸汁6萬個人次的紀錄加入不同的表,並創建一個文件。
  2. 需要更多的建議,特別是如何獲取這些記錄。由於單次獲取這些百萬條記錄可能會佔用大量資源。所以問題是如何獲取這些記錄?

任何pl-sql將不勝感激。

+0

你是如何測試你的方法是如何表達資源意圖的?你爲什麼考慮改變你的初始方法? – 2015-03-06 07:58:24

回答

0

600萬行是不是所有的東西。只需編寫查詢並讓優化器完成它的工作。如果你的統計數據是最新的,這也是自動的,它應該運行得很好。試圖調整它可能會使其運行速度變慢,除非您比Oracle工程師團隊更好地理解查詢優化。

如果你所有的行都足夠小,只使用PL/SQL是可以的。 UTL_FILE包將使用PUT_LINE命令將您限制爲每行32767個字符。有一種解決方法,但它需要將數據複製到BLOB。

我建議安裝Python和cx_Oracle或Perl和DBD :: Oracle。他們將愉快地翻轉600萬行,沒有問題。默認設置是爲了保持網絡傳輸不變,設置好一大堆行。

如果你讓我知道你想如何繼續下去,我可以發佈一些示例代碼,但是搜索cx_Oracle或DBD的文檔:: Oracle將提供關於如何獲取記錄的基礎知識。

+0

您也可以考慮使用Java存儲過程並使用標準的java.io類來編寫文件。不過,您需要授予相應的Java權限才能寫入文件系統。 – 2010-11-26 04:21:38

-2

我寫了Java程序將所有記錄寫入文件。在我的選擇上,我有20個線程,它像夢一樣工作。

+1

歡迎來到Stack Overflow!這也許應該是一個評論,而不是一個答案,因爲它幾乎只是說你設法讓這個工作沒有提供任何具體細節。有了更多的代表,[你將能夠發表評論](http://stackoverflow.com/privileges/comment)。 – 2015-03-06 07:36:46

相關問題