久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

144次閱讀
沒有評論

共計 2508 個字符,預計需要花費 7 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

insert into pntmall_point_detail(PNTMALL_PNT_ID,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATEDT,

 PNTMALL_RPTPNT_ID,PNTMALL_HAIERUID,

 PNTMALL_OPTYPE_ID,PNTMALL_OPTYPE_DESC,

 PNTMALL_NUM,PNTMALL_EXPDT,HPT_REDEMPT_POINT,

 HPT_LEFT_POINT,HPT_FULLREDEMPT_STATUS)

  SELECT PNTMALL_PNT_ID,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATEDT,

 PNTMALL_RPTPNT_ID,PNTMALL_HAIERUID,

 PNTMALL_OPTYPE_ID,PNTMALL_OPTYPE_DESC,

 PNTMALL_NUM,PNTMALL_EXPDT,0 as HPT_REDEMPT_POINT,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,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATEDT,

 PNTMALL_RPTPNT_ID,PNTMALL_HAIERUID,

 PNTMALL_OPTYPE_ID,PNTMALL_OPTYPE_DESC,

 PNTMALL_NUM,PNTMALL_EXPDT,HPT_REDEMPT_POINT,

 HPT_LEFT_POINT,HPT_FULLREDEMPT_STATUS)

  SELECT PNTMALL_PNT_ID,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATEDT,

 PNTMALL_RPTPNT_ID,PNTMALL_HAIERUID,

 PNTMALL_OPTYPE_ID,PNTMALL_OPTYPE_DESC,

 PNTMALL_NUM,PNTMALL_EXPDT,0 as HPT_REDEMPT_POINT,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,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATEDT,

 PNTMALL_RPTPNT_ID,PNTMALL_HAIERUID,

 PNTMALL_OPTYPE_ID,PNTMALL_OPTYPE_DESC,

 PNTMALL_NUM,PNTMALL_EXPDT,HPT_REDEMPT_POINT,

 HPT_LEFT_POINT,HPT_FULLREDEMPT_STATUS)

  SELECT PNTMALL_PNT_ID,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATEDT,

 PNTMALL_RPTPNT_ID,PNTMALL_HAIERUID,

 PNTMALL_OPTYPE_ID,PNTMALL_OPTYPE_DESC,

 PNTMALL_NUM,PNTMALL_EXPDT,0 as HPT_REDEMPT_POINT,PNTMALL_NUM,0

  FROM pntmall_point_detail_tmp a; 

commit;

WHERE NOT EXISTS (SELECT b.PNTMALL_PNT_ID

  FROMpntmall_point_detail b

  WHEREa.PNTMALL_PNT_ID = b.PNTMALL_PNT_ID);

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

向 AI 問一下細節

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-18發表,共計2508字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 庆云县| 临城县| 衡阳县| 永顺县| 荣昌县| 沿河| 虞城县| 宣化县| 武乡县| 天祝| 北海市| 西峡县| 沧州市| 定日县| 大同市| 黑河市| 原阳县| 兰考县| 惠安县| 普陀区| 莲花县| 宝应县| 郧西县| 仙居县| 游戏| 霍邱县| 长沙市| 崇左市| 类乌齐县| 南陵县| 定边县| 湟中县| 襄樊市| 阳春市| 富阳市| 巩义市| 神木县| 巴彦县| 壤塘县| 湟源县| 周口市|