如今,Oracle數據庫以其高可靠性、安全性、可兼容性,得到越來越多的企業(yè)的青睞。如何使Oracle數據庫保持優(yōu)良性能,這是許多數據庫管理員關心的問題,筆者建議不妨針對以下幾個方面加以考慮.
如今,Oracle數據庫以其高可靠性、安全性、可兼容性,得到越來越多的企業(yè)的青睞。如何使Oracle數據庫保持優(yōu)良性能,這是許多數據庫管理員關心的問題,筆者建議不妨針對以下幾個方面加以考慮。
分區(qū)
根據實際經驗,在一個大數據庫中,數據庫空間的絕大多數是被少量的表所占有。為了簡化大型數據庫的管理,改善應用的查詢性能,一般可以使用分區(qū)這種手段。所謂分區(qū)就是動態(tài)地將表中的記錄分離到若干不同的表空間上,使數據在物理上被分割開來,便于維護、備份、恢復、事務及查詢性能。當使用的時候可建立一個連接所有分區(qū)的視圖,使其在邏輯上仍以一個整體出現。
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 values less than (31)
tablespace PART3_TS
partition PART4 values less than (MAXvalue)
tablespace PART4_TS
);
表Employee依據DeptNo列進行分區(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,
);
當分區(qū)中出現許多事務并且要保證所有分區(qū)中的數據記錄的惟一性時采用全局索引,在建立全局索引時,Global子句允許指定索引的范圍值,這個范圍值可以不同于表分區(qū)的范圍值。只有建立局部索引才會使索引分區(qū)與表分區(qū)間建立起一一對應關系。因此,在大多數情況下,應該使用局部索引分區(qū)。若使用了此索引,分區(qū)就能夠很容易地將索引分區(qū)與表分區(qū)建立關聯,局部索引比全局索引更易于管理。
3. 分區(qū)管理
根據實際需要,還可以使用Alter table 命令來增加、刪除、交換、移動、修改、重命名、劃分、截短一個已存在分區(qū)的結構。
重建索引
如果表中記錄頻繁地被刪除或插入,盡管表中的記錄總量保持不變,索引空間的使用量會不斷增加。雖然記錄從索引中被刪除,但是該記錄索引項的使用空間不能被重新使用。因此,如果表變化不定,索引空間量會不斷增加,不論表中記錄數量是否增加,只是因為索引中無效空間會增加。
要回收那些曾被刪除記錄使用的空間,需要使用Alter index rebuild 命令?梢宰鲆粋定期運行的批處理程序,來重建最活動表的索引。這個批處理程序可以在空閑時運行,以避免該程序與其他應用程序沖突。若能堅持索引的這一程序規(guī)劃,便可以及時回收那些未使用空間,提高空間利用率。
更多軟考資料請訪問:考試吧軟件水平考試欄目
希望與更多網友交流,請進入考試吧軟件水平考試論壇
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |