保持Oracle資料優良效能的若干訣竅(轉)
保持Oracle資料優良效能的若干訣竅(轉)[@more@]作者:宗麗英如今,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 values less than (31)tablespace PART3_TSpartition 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 命令來增加、刪除、交換、移動、修改、重新命名、劃分、截短一個已存在分割槽的結構。重建索引如果表中記錄頻繁地被刪除或插入,儘管表中的記錄總量保持不變,索引空間的使用量會不斷增加。雖然記錄從索引中被刪除,但是該記錄索引項的使用空間不能被重新使用。因此,如果表變化不定,索引空間量會不斷增加,不論表中記錄數量是否增加,只是因為索引中無效空間會增加。要回收那些曾被刪除記錄使用的空間,需要使用Alter index rebuild 命令。可以做一個定期執行的批處理程式,來重建最活動表的索引。這個批處理程式可以在空閒時執行,以避免該程式與其他應用程式衝突。若能堅持索引的這一程式規劃,便可以及時回收那些未使用空間,提高空間利用率。段的碎片整理當生成一個資料庫物件時(一個表或一個索引),透過使用者預設值或指定值來為它指定表空間。一個在表空間中生成的段,用於儲存物件的相關資料。在段被關閉、收縮、截斷之前,段所分配的空間將不被釋放。一個段是由範圍組成,而範圍是由相鄰的Oracle塊組成。一旦存在的範圍不能再儲存新的資料,這個段就會去獲得新的範圍,但並不要求這些範圍是彼此相鄰的。這樣的擴充套件會一直繼續下去,直到表空間中的資料檔案不能提供更多的自由空間,或者範圍數量已達到極限。因此,一個碎片太多的資料段,不僅會影響執行,也會引發表空間中的空間管理問題。所以,每個資料段只含有一個範圍是十分有益的。藉助監控系統,可以透過檢查DBA_SEGMENTS資料字典檢視來了解哪些資料庫物件含有10個或更多範圍的段,確定其資料段碎片。若一個段的碎片過多,可用兩種方法解決:1. 用正確的儲存引數建立一個新表,將舊錶中的資料插入到新表中,再刪除舊錶;2. 利用Export/Import工具。如:exp system/manager file=exp.dmp compress=Y grants=Y indexes=Ytables=(T1,T2)若輸出成功,進入Oracle,刪除上述表。注:compress=Y表示將在輸出過程中修改它們的儲存引數。imp system/manager file=exp.dmp commit=Y buffer=64000 full=Y注:在輸入時重新配置新的儲存引數。自由範圍的碎片整理表空間中的一個自由範圍是表空間中相連的自由(空間)塊的集合。當一個段關閉時,它的範圍將被釋放,並被標記為自由範圍。然而,這些自由範圍再也不能與相鄰的自由範圍合併,它們之間的界線始終存在。但是當表空間的預設值pctincrease設定不是0時,SMON後臺程式會定期將這些相鄰的自由範圍合併。若pctincrease設定為0,那麼相鄰自由範圍不會被資料庫自動合併。但可以使用Alter table命令“coalesce”選項,來強迫進行相鄰自由範圍的合併。不進行自由範圍合併,在日後的空間請求中,會影響到表空間中的空間分配。當需要一個足夠大的範圍時,資料庫並不會合併相鄰的自由範圍,除非沒有其他選擇。這樣,當表空間中前面較小的自由範圍已被使用時,將使用表空間中後面部分最大的一個自由範圍。結果,會因為沒有足夠多的使用空間,從而導致表空間需求的矛盾。由於這樣的情況出現,使資料庫的空間分配距理想越來越遠。自由空間碎片常會出現在那些經常關閉又重新生成的資料庫表和索引中。在理想的Oracle表空間中,每一個資料庫物件儲存在一個單獨的範圍中,並且所有有效自由空間集中在一個巨大而連續的範圍中。這樣,在一個物件需要附加儲存空間時,可以在增加獲取足夠大自由空間的可能性的同時,最小化空間中的迴圈呼叫,提高自由空間使用率
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-942883/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 保持Oracle資料庫優良效能的若干訣竅(轉)Oracle資料庫
- 如何保持Oracle資料庫的優良效能Oracle資料庫
- 一個修改Oracle使用者密碼的小訣竅(轉)Oracle密碼
- [譯] 保持 webpack 快速執行的訣竅:一本提高構建效能的現場指導手冊Web
- 如何保持Oracle資料庫SQL效能的穩定性Oracle資料庫SQL
- 大資料架構師拿50W的方法訣竅大資料架構
- 怎樣保持Oracle資料庫SQL效能的穩定性Oracle資料庫SQL
- 寫好軟體的訣竅
- 【轉】關於Oracle資料庫的效能優化心得Oracle資料庫優化
- 優化資料庫大幅度提高Oracle的效能(轉)優化資料庫Oracle
- 8.4學好linux的訣竅Linux
- 【效能優化】ORACLE資料庫效能優化概述優化Oracle資料庫
- 成功地領導一個專案的訣竅(轉)
- Oracle資料庫效能優化Oracle資料庫優化
- 程式設計師的王牌面試訣竅程式設計師面試
- ORACLE資料庫效能優化概述Oracle資料庫優化
- [譯] 前端除錯技巧與訣竅前端除錯
- 千萬級架構設計訣竅架構
- 用於WebKit的CSS訣竅-圖片版WebKitCSS
- oracle資料庫的效能調整(轉)Oracle資料庫
- 掌握Oracle資料庫效能調優方法Oracle資料庫
- Oracle資料庫訪問效能優化Oracle資料庫優化
- Oracle資料庫效能優化總結Oracle資料庫優化
- 【轉載】[效能分析]Oracle資料庫效能模型Oracle資料庫模型
- Oracle資料庫資料恢復、效能優化 ASKMACLEANOracle資料庫資料恢復優化Mac
- oracle資料庫網路相關的若干概念Oracle資料庫
- oracle資料庫效能監控的SQL(轉)Oracle資料庫SQL
- Oracle DBA優化資料庫效能的心得體會Oracle優化資料庫
- Oracle資料庫效能優化技術(zt)Oracle資料庫優化
- Oracle資料庫 Exp/Imp工具效能調優Oracle資料庫
- 建立Oracle ADG standby資料庫若干方法Oracle資料庫
- Shell文字處理編寫單行指令的訣竅
- Win7工作列幾個應用的訣竅Win7
- 說服他人的訣竅 | 從SWOT模型到TOSW模型模型
- 零基礎也能學習JAVA的訣竅Java
- 遊戲被病毒式傳播的八大訣竅遊戲
- ·[實用]生活中15條護膚的小訣竅
- 面試時誰都緊張,但我有訣竅!面試