當前位置:編程學習大全網 - 行動軟體 - oracle INSERT SELECT 結果集 當 SELECT 結果集比較大的時候 怎麽做比較好! 例如 結果集 有大於 500晚

oracle INSERT SELECT 結果集 當 SELECT 結果集比較大的時候 怎麽做比較好! 例如 結果集 有大於 500晚

不同的情況,考慮優化的原則不太壹樣.

如果是INSERT XXXXXX SELECT xxxxx FROM

這種語句的話,要考慮的東西就比較多.

從樓主的題目意思上來看,已經確定是由於數據量的問題,造成資源利用的消耗(比如系統緩存,比如回滾段),導致語句執行效率比較慢了?(壹般500w的數據不算太多的...當然也要看具體情況)

如果確實是我猜測的這樣,我給妳出出主意。不考慮分區表和分區索引,此處不太適合妳的描述。

第壹種, 單獨將此SELECT結果集建立新的臨時表,建立合理的索引後.後續操作基於此表.這樣做,可以減少資源的大吞吐,縮短執行時間.且操作簡單,看妳此處是否適用.

第二種, 編寫存儲過程,在該表上建立合適的索引,開遊標進行數據處理(插入),批量(看具體參數)進行提交.

第三種, 按照樓主提出的思想,將原表分揀到壹些子表中,再進行操作.

但rownum顯然不行.

1 可以利用ROWID進行分揀。但用ROWID的話,要註意對ROWID進行轉換(它不是普通字符串)後才能使用。

2 可以將原表完全拷貝到壹張新表,並利用序列給每行生成壹個行號(序列號),再利用行號進行表數據的分揀存儲,從而將每次執行時的量降低。

當然,方法是很多的 希望能幫助到妳!

  • 上一篇:妳們都用什麽壁紙
  • 下一篇:介紹幾部香港恐怖片
  • copyright 2024編程學習大全網