Oracle SQL七次提速技巧

來源:互聯網
上載者:User

標籤:

以下SQL執行時間按序號遞減。

1,動態SQL,沒有綁定變數,每次執行都做硬解析操作,佔用較大的共用池空間,若共用池空間不足,會導致其他SQL語句的解析資訊被擠出共用池。

create or replace procedure proc1

as beginfor i in 1..100000 loop    execute immediate ‘insert into t values(‘||i||‘)‘;    commit;    end loop;end; 2,動態SQL,綁定變數,SQL語句只要執行一次硬解析即可。create or replace procedure proc2asbeginfor i in 1..100000 loop    execute immediate ‘insert into t values(:x)‘ using i;    commit;    end loop;end; 3,靜態SQL語句,在執行之前的編譯階段就已經解析,動態SQL在執行的過程中再解析。create or replace procedure proc3asbeginfor i in 1..100000 loop    insert into t values(i);    commit;    end loop;end; 4,批量提交,減少commit次數能顯著減少LGWR的觸發次數,commit操作不是寫資料,而是記錄SCN,所以commit操作的時間並不長,但提交量大時仍有區別。create or replace procedure proc4asbeginfor i in 1..100000 loop    insert into t values(i);    end loop;    commit;end; 5,逐條插入變成集合操作,整批地寫入DATA BUFFER中,然後再重新整理到硬碟。insert into t select rownum from dual connect by level<=100000; 6,直接路徑讀寫方式:跳過DATA BUFFER,將資料直接寫入到硬碟。缺點:在DATA BUFFER中沒有預存,所以此操作後的第一次讀會有物理讀。優點:一般用于海量資料移轉,資料量遠超實體記憶體。create table t as select rownum x from dual connect by level <= 100000;

7,依據硬體環境,開啟一定的並行。缺點:佔用大量CPU資源。create table t nologging parallel xx as select rownum x from dual connect by level <= 100000; 

Oracle SQL七次提速技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.