對(duì)于TABLE,INDEX,CLUSTER而言,ORACLE數(shù)據(jù)庫(kù)對(duì)其存儲(chǔ)空間的分配是以EXTENT為單位的。
根據(jù)ORACLE的規(guī)定,EXTENT是由一個(gè)或多個(gè)數(shù)據(jù)塊組成,它們?cè)谖锢砜臻g上是連續(xù)的。而不同的EXTENT在物理空間上并不一定連續(xù)。
所以,如果某個(gè)TABLE,INDEX,或CLUSTER分配并使用了很多EXTENT,則在對(duì)其進(jìn)行查詢或掃描時(shí)就不可能通過一次數(shù)據(jù)庫(kù)的物理讀來(lái)讀入大量的數(shù)據(jù),由此效率就會(huì)降低。
另外,在TABLE,INDEX,或CLUSTER創(chuàng)建時(shí),還可以設(shè)置一個(gè)存儲(chǔ)參數(shù)-MAXEXTENTS,由該參數(shù)限制某個(gè)數(shù)據(jù)庫(kù)對(duì)象所能擁有EXTENT的數(shù)量。
如果目前某個(gè)數(shù)據(jù)庫(kù)對(duì)象已分配的EXTENT數(shù)量已達(dá)到了最大值,則在下次需要繼續(xù)對(duì)該數(shù)據(jù)庫(kù)對(duì)象分配EXTENT時(shí),ORACLE將報(bào)錯(cuò)。針對(duì)上述的情況,為了提高ORACLE數(shù)據(jù)庫(kù)的性能和減少出錯(cuò),所以我們應(yīng)對(duì)這類數(shù)據(jù)庫(kù)對(duì)象的存儲(chǔ)狀況進(jìn)行監(jiān)控。
對(duì)于表空間而言,隨著對(duì)TABLE,INDEX,和CLUSTER的增、刪、改操作的不斷發(fā)生,表空間中會(huì)出現(xiàn)碎片,這是一些在物理上孤立的、空閑的存儲(chǔ)空間。
由于某些碎片比較小,不足以容納一個(gè)為TABLE、INDEX、或CLUSTER動(dòng)態(tài)分配的EXTENT,而EXTENT又要求在物理上必須是連續(xù)的,因此這些碎片將不被使用,所以這勢(shì)必會(huì)造成一些存儲(chǔ)空間的浪費(fèi)。
同時(shí),由于碎片的存在,又迫使TABLE、INDEX、或CLUSTER內(nèi)部不同的EXTENT在物理上不連續(xù),這也降低了數(shù)據(jù)庫(kù)系統(tǒng)的性能。由此,我們應(yīng)對(duì)表空間的存儲(chǔ)及碎片狀況進(jìn)行監(jiān)控。