原因分析
SQL的阻塞、觸發(fā)器、外鍵約束、高水位線(HWM)等因素中的某一個(gè)導(dǎo)致DELETE操作慢
- 問(wèn)題的根源就在于ORACLE的HWM.也就是說(shuō),在新增記錄時(shí),HWM會(huì)慢慢往上移,但是在刪除記錄后,HWM卻不會(huì)往下移,也就是說(shuō),DELETE一千萬(wàn)條記錄后,此表的HWM根本沒(méi)移動(dòng),還在原來(lái)的那個(gè)位置,所以,HWM以下的塊數(shù)同樣也是一樣的.ORACLE的全表掃描是讀取ORACLE高水位標(biāo)記下的所有BLOCK,也就是說(shuō),不管HWM下的BLOCK現(xiàn)在實(shí)際有沒(méi)有存放數(shù)據(jù),ORACLE都會(huì)一一讀取,這樣,大家可想而知,在我們DELETE表后,ORACLE讀了大量的空塊,耗去了大量的時(shí)間.
參考文獻(xiàn):
https://www.cnblogs.com/kerrycode/p/4390430.html
https://www.cnblogs.com/husam/p/6604437.html