遭遇極品 開發人員

2021-08-25 12:22:23 字數 2504 閱讀 6559

由於專案要從 uat環境遷移到 prod 環境,infosys(阿三) team 的人要我執行下面的sql,具體的業務邏輯我就不多說了。

begin

update adwgu_dicfr.dicfr_ordr_cut_fct a

settp_end_date =

( select to_number(to_char((tp_end_date),'yyyymmdd')) from cal_mastr_dim b

where a.time_perd_start_date= to_number(to_char((b.day_date),'yyyymmdd')));

update adwgu_dicfr.dicfr_ordr_cut_fct a

setwk_end_date =

( select to_number(to_char((wk_end_date),'yyyymmdd') from cal_mastr_dim b where

a.time_perd_start_date= to_number(to_char((b.day_date),'yyyymmdd')));

update adwgu_dicfr.dicfr_ordr_cut_fct a

setmth_start_date =

( select to_number(to_char((mth_start_date),'yyyymmdd') from cal_mastr_dim b where

a.time_perd_start_date= to_number(to_char((b.day_date),'yyyymmdd')));

update adwgu_dicfr.dicfr_ordr_cut_fct a

setmth_end_date =

( select to_number(to_char((mth_end_date),'yyyymmdd') from cal_mastr_dim b where

a.time_perd_start_date= to_number(to_char((b.day_date),'yyyymmdd')));

commit;

end;

/sql> select count(*) from adwgu_dicfr.dicfr_ordr_cut_fct ; ---這個表有5百多萬記錄

count(*)

----------

5615733

相信你看了這個過程肯定要發狂了,這簡直就是極品開發人員寫的啊,印度阿三,哎,水平確實不咋地,媽的專案上面的效能問題絕大部分就是這些sb開發人員亂寫sql,寫好了也不給我檢查。哥就不明白為啥不能在乙個 sql裡面搞定所有的update,而非要

單獨的update。我前面一篇部落格才寫了 乙個update的優化案例, 那麼這裡也適用,下面就是我改寫的sql

declare

cursor c is

select

to_number(to_char((b.tp_end_date),'yyyymmdd')) tp_end_date,

to_number(to_char((b.wk_end_date),'yyyymmdd')) wk_end_date,

to_number(to_char((b.mth_start_date),'yyyymmdd')) mth_start_date,

to_number(to_char((b.mth_end_date),'yyyymmdd')) mth_end_date,

a.rowid row_id

from adwgu_dicfr.dicfr_ordr_cut_fct a, adwgu_dicfr.cal_mastr_dim b

where a.time_perd_start_date= to_number(to_char((b.day_date),'yyyymmdd')) ;

v_counter number;

begin

v_counter := 0;

for v_row in c loop

update adwgu_dicfr.dicfr_ordr_cut_fct

set tp_end_date = v_row.tp_end_date,

wk_end_date = v_row.wk_end_date,

mth_start_date = v_row.mth_start_date,

mth_end_date = v_row.mth_end_date

where rowid = v_row.row_id;

v_counter := v_counter + 1;

if (v_counter >= 1000) then

commit;

v_counter := 0;

end if;

end loop;

commit;

end;

/改寫後的sql 28分鐘就完成了

pl/sql procedure successfully completed.

elapsed: 00:27:59.81

IT開發人員

其路五 轉行到市場 絞盡腦汁的想想,我所知道的人之中只有兩個開發人員去了市場,這兩個人都不能說是朋友,認識而已。他們都是主動要求去了市場,結果是這兩個人均在市場都是乾到一年左右,然後都自已開公司了。呵呵,很奇怪,極高的轉行成功率!不過仔細想想,我對這兩個人的思路佩服的五體投地。能下決心仍掉每月5 6...

開發人員必讀

對於剛開始學習軟體開發的新人來說,必備技能 往往意味著乙個長長的 標有重要度的學習列表,但是過長的列表通常會導致新人不知如何開始學習,壓力倍增。本文嘗試列舉出最重要的幾個技能,也期望通過此列表能給新人乙個比較明確的學習重點和路徑。沒有掌握任何一門程式語言,就不可能成為一名程式設計人員。許多程式設計師...

libjingle開發人員指南

libjingle 開發人員指南 libjingle sdk包含c 源 和文件,使您能夠設計連線和網路交換資料的應用程式 通過點對點資料連線 該sdk包含 和示例應用程式,乙個window平台的vs2005 的解決方案,其他平台的configuration and makefiles檔案用來編輯程式...