1. 程式人生 > >DB2在多表關聯的情況下進行UPDATE的時候真有點BT!

DB2在多表關聯的情況下進行UPDATE的時候真有點BT!

t_sd_saleorderentry表有40多萬記錄,在DB2下看他的執行計劃為140000,且對t_sd_saleorderentry進行了全表掃描浪費了大部分的時間,

2.jpg

本以為DB2可以智慧的把()中的關聯條件轉化出來,在更新表資料的時候,可以智慧地更新相關的資料,但看樣子不能,我只好把()的關聯條件又寫了一份放到WHERE裡面,加在了原先的後面,結果執行計劃就降到了900多(FID有索引),DB2感覺真有點爛,這個東東還要寫兩遍呀

1.jpg

不過也算學到了點東西,破DB2在UPDATE的時候,如果不硬在WHERE中加上限制條件,而只是在SET中隱含限制的時候,DB2在大資料量的情況下肯定會有效能問題,因為它會進行全表掃描的.