調整PL/SQL程式碼加速執行(2例)

hooca發表於2014-09-28
1. 調整變數型別NUMBER為PLS_INTEGER。
調整前插入300,000行資料,執行時間00:09:57.30;調整為PLS_INTEGER後,執行時間下降到00:06:47.40。

結論:PLS_INTEGER可以使用更少的內部命令來處理。

2. 調整MOD函式

例:

點選(此處)摺疊或開啟

  1. BEGIN
  2.     stop_watch.start_timer;
  3. FOR lv_count_num IN 1..10000 LOOP
  4.     IF MOD(lv_count_num, 1000) = 0 THEN
  5.         DBMS_OUTPUT.PUT_LINE('Hit 1000; Total: ' || lv_count_num);
  6.     END IF;
  7. END LOOP;
  8. stop_watch.stop_timer;
  9. END;
  10. /
可調整為,


點選(此處)摺疊或開啟

  1. DECLARE
  2. lv_count_inc_num PLS_INTEGER := 0;
  3. BEGIN
  4.     stop_watch.start_timer;
  5.     FOR lv_count_num IN 1..10000 LOOP
  6.         lv_count_inc_num := lv_count_inc_num + 1;
  7.         IF lv_count_inc_num = 1000 THEN
  8.             DBMS_OUTPUT.PUT_LINE('Hit 1000; Total: ' || lv_count_num);
  9.             lv_count_inc_num := 0;
  10.         END IF;
  11.     END LOOP;
  12.     stop_watch.stop_timer;
  13. END;
  14. /

我用了自己的一則例子來測試,因程式碼太長就不貼出來了,實際效果並不明顯。調整前00:06:47.40,調整後00:06:10.10。

查閱資料,MOD函式開銷比較大。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-1283431/,如需轉載,請註明出處,否則將追究法律責任。

相關文章