Oracle數(shù)據(jù)庫(kù)的空間管理技巧
正在看的ORACLE教程是:Oracle數(shù)據(jù)庫(kù)的空間管理技巧?! ≡贠racle數(shù)據(jù)庫(kù)中,DBA可以通過(guò)觀測(cè)一定的表或視圖來(lái)了解當(dāng)前空間的使用狀況,進(jìn)而作出可能的調(diào)整決定。一.表空間的自由空間
通過(guò)對(duì)表空間的自由空間的觀察,可用來(lái)判斷分配給某個(gè)表空間的空間是太多還是不夠。請(qǐng)看下列的語(yǔ)句
可以看出,在FileNo為12的表空間RBS中,只有0.19%的分配空間未被使用,這個(gè)比例太小了,而在SYSTEM及TEMP等表空間中,高達(dá)80%以上的空間未被利用,對(duì)于生產(chǎn)型數(shù)據(jù)庫(kù),這個(gè)表空間的設(shè)置有些偏高。
關(guān)于自由空間的管理,有下面的一些建議:
利用Export及Import命令卸出和裝入表空間可以釋放大量的空間,從而緩解增加另外的數(shù)據(jù)文件的要求。
如果包含具有高插入(insert)和更新(update)活動(dòng)的表的表空間中自由空間的比重下降到了15%以下,要為此表空間增加更多的空間。
對(duì)于一個(gè)基本是靜態(tài)表數(shù)據(jù)的表空間,如果有多于20%的自由空間,則可以考慮減少分配給它的文件空間量。
減少SYSTEM表空間的空間量比較困難,因?yàn)槟且亟〝?shù)據(jù)庫(kù)。
[NextPage]
A.為了防止表或索引被過(guò)分?jǐn)U展,及時(shí)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的調(diào)整,用戶應(yīng)當(dāng)經(jīng)常對(duì)有關(guān)對(duì)象進(jìn)行觀察。
我們可以認(rèn)為,擴(kuò)展區(qū)域大于5個(gè)的表或索引為過(guò)分?jǐn)U展(overextended)。請(qǐng)看下面的語(yǔ)句:
通過(guò)觀察, DBA可以及時(shí)發(fā)現(xiàn)問(wèn)題并進(jìn)行相應(yīng)的處理。
我們可以利用export卸出表,然后刪除表,再利用import命令將表裝入,這樣,可以將不連續(xù)的區(qū)域合并成一個(gè)連續(xù)的空間。
B.如果用戶希望對(duì)表的空間設(shè)置進(jìn)行優(yōu)化,例如,需要改變表EMP的initial參數(shù),可以采用下面的方法:
1.在將EMP表卸出并刪除后執(zhí)行imp命令時(shí)使用indexfile參數(shù):
imp userid=scott/tiger file=emp.dmp indexfile=emp.sql Oracle把表和索引的創(chuàng)建信息寫(xiě)到指定的文件,而不是把數(shù)據(jù)寫(xiě)回。
1 3 4
[NextPage]
2.打開(kāi)emp.sql文件:
對(duì)它進(jìn)行編輯,去除"REM"等信息,找到Initial參數(shù),根據(jù)需要改變它。
3.在SQL*plus中執(zhí)行emp.sql。
4.裝入數(shù)據(jù):
需要注意的是,ignore參數(shù)必須設(shè)為Y.
C.可以用下面的語(yǔ)句來(lái)觀察表或索引距離達(dá)到最大擴(kuò)展的狀況,“UNUSE”為距離達(dá)到最大擴(kuò)展的值,在User_extents表中,extent_id是從0開(kāi)始記述數(shù)的。
如果“UNUSE"小到一定的程度,我們就應(yīng)該加以關(guān)注,進(jìn)行適當(dāng)?shù)恼{(diào)整處理。
[NextPage]
三 關(guān)于連續(xù)空間
可以用下面的語(yǔ)句來(lái)查看數(shù)據(jù)庫(kù)中的自由空間:
我們可以通過(guò)命令的結(jié)果來(lái)估計(jì)相鄰自由空間的真正數(shù)量。對(duì)每一行,用起始快的id(BLOCK_ID)加上自由塊(BLOCKS)的數(shù)量,如果其和與下一行的塊id(BLOCK_ID)相等,則此兩行是連續(xù)的。如上例第二行和第三行,133719+126=133845,而1338456+130!=135275,所以從block_id為133719開(kāi)始,有126+130=256個(gè)block的連續(xù)空間。
在Oracle數(shù)據(jù)庫(kù)的后臺(tái),系統(tǒng)監(jiān)視器(SMON)周期性地合并自由空間相鄰的塊,以得到更大的連續(xù)塊。而DBA可以用SQL命令來(lái)完成這個(gè)工作:
Oracle空間管理對(duì)數(shù)據(jù)庫(kù)的工作性能有重要影響,其管理方法值得我們認(rèn)真摸索研究。
上一頁(yè)
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com