Oracle最佳化:千萬級大表邏輯判斷的累贅

來源:互聯網
上載者:User

標籤:oracle

insert into pntmall_point_detail(PNTMALL_PNT_ID, ...........                          HPT_LEFT_POINT,HPT_FULLREDEMPT_STATUS)  SELECT PNTMALL_PNT_ID,.......,PNTMALL_NUM,0    FROM pntmall_point_detail_tmp a   WHERE NOT EXISTS (SELECT b.PNTMALL_PNT_ID            FROM pntmall_point_detail b           WHERE a.PNTMALL_PNT_ID = b.PNTMALL_PNT_ID);


PNTMALL_POINT_DETAIL包含3800萬條資料,cost 6 hours。


最佳化後

 

delete from pntmall_point_detail_tmp a where exists (select 1 from pntmall_point_detail b where a.PNTMALL_PNT_ID = b.PNTMALL_PNT_ID);insert into pntmall_point_detail(PNTMALL_PNT_ID, ...........                          HPT_LEFT_POINT,HPT_FULLREDEMPT_STATUS)  SELECT PNTMALL_PNT_ID,.......,PNTMALL_NUM,0    FROM pntmall_point_detail_tmp a

cost 5 minutes。


其實還可以進一步最佳化

drop indexBER.INDEX_POD_PNTMALL_HAIERUID;drop indexBER.PNTMALL_POINT_ID_HAIERUID;  delete from pntmall_point_detail_tmp a where exists (select 1from pntmall_point_detailb where a.PNTMALL_PNT_ID =b.PNTMALL_PNT_ID);  insert/*+append*/into pntmall_point_detail(PNTMALL_PNT_ID,....                         HPT_LEFT_POINT,HPT_FULLREDEMPT_STATUS)  SELECT PNTMALL_PNT_ID,....,PNTMALL_NUM,0    FROM pntmall_point_detail_tmp a;create index BER.INDEX_POD_PNTMALL_HAIERUIDon BER.PNTMALL_POINT_DETAIL (PNTMALL_HAIERUID) online nologing;create unique indexBER.PNTMALL_POINT_ID_HAIERUID on BER.PNTMALL_POINT_DETAIL (PNTMALL_PNT_ID) online nologing;



總體最佳化思路,不要在insert中加入過多的判斷語句,刪索引,append,重建索引,如果是歸檔模式,alter table nologing;append 只適用於insert select 這種方式,而且insert後要加commit,否則無法進行其他DML操作。


實測 append 1600萬條資料,cost 8s

Oracle最佳化:千萬級大表邏輯判斷的累贅

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.