您的位置:首頁技術文章
文章詳情頁

ORACLE大批量插入數據的詳細步驟

瀏覽:101日期:2023-05-30 16:14:01
目錄
  • 嘗試了一下幾種方式:
    • 一.關閉日志,數據追加模式
    • 二:PARALLEL模式(并行進程數要謹慎 )
  • 總結

    最近有幾張表隨著時間不斷的增長,表中的數據量也越來越大,想把原來的表改成分區表,需要兩個步驟:

    一:建立分區表

    二:把源表的數據遷移到分區表中

    但是源表的數據量是1億的數據量,按照最普遍的方式 INSERT INTO 效率太低了

    嘗試了一下幾種方式:

    一.關閉日志,數據追加模式

    1.關閉表日志功能

    ALTER? TABLE? TABLE_NAME? NOLOGGING;

    comments: 必須要關掉,不然生成的日志可能會把數據給撐爆掉

    2. 插入方式以追加的方式

    INSERT? /*+ APPEND? */ INTO TABLE_NEW?SELECT? * FROM? TABLE_ORI ;

    3.COMMIT 提交

    4.開啟表日志功能

    ALTER TABLE  TABLE_NAME LOGGING;

    說明:這種方式只能按照串行的方式進行,如果有多個任務在同時進行,會導致進程等待,反而會影響傳輸的效率。

    二:PARALLEL模式(并行進程數要謹慎 )

    此模式有4種方式,

    1.插入PARALLEL

     INSERT  /*+  PARALLEL(N)   */    INTO TABLE_NEW  SELECT  *  FROM  TABLE_ORI ;

    這種是采用INSERT 并發,適用于 查詢快,插入慢的場景。

    2.查詢PARALLEL

    INSERT INTO TABLE_NEW  SELECT  /*+  PARALLEL(N)   */  *  FROM  TABLE_ORI ;

    這種采用查詢并發,適用于插入快,查詢慢的應用場景。

    3.插入和查詢PARALLEL

    ????????INSERT ?/*+ ?ENABLE_PARALLEL_DML ? ?parallel( T? N)*/? ?INTO TABLE_NEW?T? ? ? ? SELECT? * FROM? ?TABLE_ORI;

    注: ENABLE_PARALLEL_DML 是啟動DML語句并行的作用。

    這種采用DML并發,適用于執行DML語句慢的應用場景。

    4.Session并發

    ? ? ? ? ALTER SESSION ENABLE?PARALLEL DML;? ? ? ???INSERT INTO TABLE_NEW? SELECT? /*+? PARALLEL(N)? ?*/? *? FROM? TABLE_ORI ;???????? ALTER SESSION DISABLE?PARALLEL DML;

    注: 這種模式其實跟第三種差不多,只不過這種是會話級別的。

    這種也是采用DML并發,適用于執行DML語句慢的應用場景。但是這種更適用于那種應用場 景復雜的情況。

    總結

    到此這篇關于ORACLE大批量插入數據的文章就介紹到這了,更多相關ORACLE批量插入數據內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: Oracle
    国产综合久久一区二区三区