Oracle數(shù)據(jù)庫(kù)以其高可靠性、安全性、可兼容性,得到越來(lái)越多的企業(yè)的青睞。如何使Oracle數(shù)據(jù)庫(kù)保持優(yōu)良性能,這是許多數(shù)據(jù)庫(kù)管理員關(guān)心的問(wèn)題,根據(jù)筆者經(jīng)驗(yàn)建議不妨針對(duì)以下幾個(gè)方面加以考慮。
一、分區(qū)
根據(jù)實(shí)際經(jīng)驗(yàn),在一個(gè)大數(shù)據(jù)庫(kù)中,數(shù)據(jù)空間的絕大多數(shù)是被少量的表所占有。為了簡(jiǎn)化大型數(shù)據(jù)庫(kù)的管理,改善應(yīng)用的查詢性能,一般可以使用分區(qū)這種手段。所謂分區(qū)就是動(dòng)態(tài)表中的記錄分離到若干不同的表空間上,使數(shù)據(jù)在物理上被分割開(kāi)來(lái),便于維護(hù)、備份、恢復(fù)、事務(wù)及查詢性能。當(dāng)使用的時(shí)候可建立一個(gè)連接所有分區(qū)的視圖,使其在邏輯上仍以一個(gè)整體出現(xiàn)。
1.建立分區(qū)表:
  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依據(jù)DeptNo列進(jìn)行分區(qū)。
2.分區(qū)索引:
  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,
  );
當(dāng)分區(qū)中出現(xiàn)許多事務(wù)并且要保證所有分區(qū)中的數(shù)據(jù)記錄的惟一性時(shí)采用全局索引,在建立全局索引時(shí),Global子句允許指定索引的范圍值,這個(gè)范圍值可以不同于表分區(qū)的范圍值。只有建立局部索引才會(huì)使索引分區(qū)與表分區(qū)間建立起一一對(duì)應(yīng)關(guān)系。因此,在大多數(shù)情況下,應(yīng)該使用局部索引分區(qū)。若使用了此索引,分區(qū)就能夠很容易地將索引分區(qū)與表分區(qū)建立關(guān)聯(lián),局部索引比全局索引更易于管理。
3.分區(qū)管理:
根據(jù)實(shí)際需要,還可以使用Alter table命令來(lái)增加、刪除、交換、移動(dòng)、修改、重命名、劃分、截短一個(gè)已存在分區(qū)的結(jié)構(gòu)。
二、重建索引
如果表中記錄頻繁地被刪除或插入,盡管表中的記錄總量保持不變,索引空間的使用量會(huì)不斷增加。雖然記錄從索引中被刪除,但是該記錄索引項(xiàng)的使用空間不能被重新使用。因此,如果表變化不定,索引空間量會(huì)不斷增加,不論表中記錄數(shù)量是否增加,只是因?yàn)樗饕袩o(wú)效空間會(huì)增加。
要回收那些曾被刪除記錄使用的空間,需要使用Alter index rebuild命令??梢宰鲆粋€(gè)定期運(yùn)行的批處理程序,來(lái)重建最活動(dòng)表的索引。這個(gè)批處理程序可以在空閑時(shí)運(yùn)行,以避免該程序與其他應(yīng)用程序沖突。若能堅(jiān)持索引的這一程序規(guī)劃,便可以及時(shí)回收那些未使用空間,提高空間利用率。
新聞熱點(diǎn)
疑難解答
圖片精選