如何保持Oracle資料庫的優良效能
來源:互聯網
上載者:User
作者:Brent
Oracle資料庫以其高可靠性、安全性、可相容性,得到越來越多的企業的青睞。如何使Oracle資料庫保持優良效能,這是許多資料庫管理員關心的問題,根據筆者經驗建議不妨針對以下幾個方面加以考慮。
一、分區
根據實際經驗,在一個大資料庫中,資料空間的絕大多數是被少量的表所佔有。為了簡化大型資料庫的管理,改善應用的查詢效能,一般可以使用分區這種手段。所謂分區就是動態表中的記錄分離到若干不同的資料表空間上,使資料在物理上被分割開來,便於維護、備份、恢複、事務及查詢效能。當使用的時候可建立一個串連所有分區的視圖,使其在邏輯上仍以一個整體出現。
1.建立分區表
Create table Employee(
EmpNo varchar2(10) primary key,
Name varchar2(30),
DeptNo Number(2)
)
Partition by range(DeptNo)
(partition PART1 values less than (11)
tablespace PART1_TS,
partition PART2 values less than(21)
tablespace PART2_TS,
partition PART3 valuse less than(31)
tablespace PART3_TS
partition PART4 values less than(MAXVALUE)
tablespace PART4_TS
);
表Employee依據DeptNo列進行分區。
2.分區索引
Create index Employee_DeptNo on Employee (DeptNo)local(
partition PART1 tablespace PART1_NDX_TS,
partition PART2 tablespace PART2_NDX_TS,
partition PART3 tablespace PART3_NDX_TS,
partition PART4 tablespace PART4_NDX_TS,
);
當分區中出現許多事務並且要保證所有分區中的資料記錄的惟一性時採用全域索引,在建立全域索引時,Global子句允許指定索引的範圍值,這個範圍值可以不同於表分區的範圍值。只有建立局部索引才會使索引分割區與表分區間建立起一一對應關係。因此,在大多數情況下,應該使用局部索引分割區。若使用了此索引,分區就能夠很容易地將索引分割區與表分區建立關聯,局部索引比全域索引更易於管理。
3.分區管理
根據實際需要,還可以使用Alter table命令來增加、刪除、交換、移動、修改、重新命名、劃分、截短一個已存在分區的結構。
二、重建索引
如果表中記錄頻繁地被刪除或插入,儘管表中的記錄總量保持不變,索引空間的使用量會不斷增加。雖然記錄從索引中被刪除,但是該記錄索引項目的使用空間不能被重新使用。因此,如果表變化不定,索引空間量會不斷增加,不論表中記錄數量是否增加,只是因為索引中無效空間會增加。