這個時候,發(fā)來了第五句SELECT語句。這時的buffer cache里已經(jīng)沒有空的內(nèi)存數(shù)據(jù)塊了。但是既然需要容納下第五個數(shù)據(jù)塊,就必然需要找一個可以被替換(后面會看到類似犧牲、重用的字樣,它們和替換都是一個意思)的內(nèi)存數(shù)據(jù)塊。這個內(nèi)存數(shù)據(jù)塊會到LRU上去找。按照oracle設(shè)定的最近最少使用的原則,位于LRU最尾端的BH1將成為犧牲者,oracle會把該BH1對應(yīng)的內(nèi)存數(shù)據(jù)塊的內(nèi)容清空,并將當(dāng)前第五句SQL所獲得的數(shù)據(jù)塊的內(nèi)容拷貝進去。這個時候,BH1就成了LRU的首端,而BH2則成為了LRU的尾端。如下圖三所示。在這種方式下,經(jīng)常被訪問的數(shù)據(jù)塊可以一直靠近LRU的首端,也就保證了這些數(shù)據(jù)塊可以盡可能的不被替換掉,從而保證了訪問的效率。
圖三
圖五
圖六
新聞熱點
疑難解答
圖片精選