oracle表空间大小规划,关于oracle表空间的规划方法
事實表(如果很大)的一定要分區,而且分區方式和你的業務邏輯相關,每個分區放在一個單獨的分區中。我所指的業務邏輯是指比如一個表基本粒度是 天+客戶代碼+產品代碼,如果查詢比較偏重于 時間+客戶,并且每次查詢都涉及到時間,這樣就可以考慮使用混合分區,時間 字段做 Range 分區,客戶 字段 做 Hash 子分區。
對于表空間來說,最重要的是如何把要連續訪問的段放在一起,但是由于oracle 不能提供基于段的統計信息,所以對數據的物理模型設計和訪問模式的詳細了解對表空間的規劃有非常大的好處。然后基于這些原則,我們就可以平衡這些因素。
表空間的使用遵循以下原則:
1. 對每個表空間上的段使用相同的區片尺寸;段參數INITIAL=NEXT,PCTINCREASE=0;可以通過使用Create Tablespace 的‘ MINIMUM EXTENT’ 子句來確保分配的區片是此參數的倍數;
2. 僅在表空間級指定INITIAL、NEXT參數,在創建數據段時不要指定這些參數;
3. 區片的大小根據段大小來確定,原則是均衡順序掃描的效率和空間的利用率,同時確保段的區片數目控制在1024之下;根據此原則,在進行相應測試之后,確定以下區片選取規則:
段大小 區片大小)
128M 128K
128M-4G 4M
4G 128M
4.Oracle9i引入了本地管理表空間,它在管理和性能上都優于傳統的字典管理表空間,它已融合了規則1、2、3 ;要使用此特性,在CREATE TABLESPACE語句中指定EXTENT MANAGEMENT LOCAL子句;
5. 段的區片數目上限應在4096之下,DML操作在此區片數目范圍內不會有明顯的性能差異;但某些DDL操作的速度則與區片的數目關系較大;因此合理的區片數目應保持在1024之下;對于持續不斷擴展的段,應監控區片數目,在必要時移至其它表空間;
6. 對于特別大的數據段應控制在4G-128G(Oracle7為5G-160G)之間,它們應存放到單獨的表空間上,同時對于這些特大段應考慮使用分區拉提高性能;
7. 用戶的臨時表空間應使用TEMPORARY類型;
8. 當系統的事務規模比較均衡時可以對回滾段使用OPTIMAL參數,否則應避免制定OPTIMAL參數,而定期監控回滾段的大小,并在必要時重建;
9. 臨時段和回滾段絕對不要將用戶數據存放到SYSTEM表空間,它是專為永遠不會Drop和Truncate的系統數據對象而設計的;
10. 創建表空間時指定數據文件的大小應=區片整數倍+1數據塊,對于Local Managed Tablespace則為區片整數倍+64K;
11. 當表空間使用統一的區片大小時,不要對其進行空間整理,重整的結果不僅耗費精力而且可能會使性能變差;對于未使用統一的區片尺寸的表空間應通過Export/Import重整;
12. 9i 提供了Alter Table …Move [Tablespace…]命令可用于快速重整表,Alter Index …Rebuild…[Tablespace…] 命令可用于快速重建索引;
首先,不同訪問模式的段不應該放在同一個表空間當中,一般而言,我們有以下兩種完全不同的訪問模式需要特別考慮
順序讀寫
段的讀寫基本是以一種連續讀寫的方式進行的,譬如:單線程全表掃描,快速全索引掃描,應該被單獨存放在自己的表空間當中,而且,如果可能的話,這些表空間的數據文件也應當保存在一些并發訪問盡可能少的磁盤當中,這樣的話,在進行掃描的時候,查詢速度會有非常大的提高。因為,基本上磁盤的尋道時間是最小的,而且大多數數據都可以從硬盤的buffer當中取得。
集中寫
類似大量數據集中寫入或者parallel direct loads 這種應用,應當被放在單獨的表空間當中,而且盡可能保存在較快的鏡像盤當中,而不應該選用RAID-5,
還有一個問題就是,對于一些只讀的歷史數據,最好把它們放在單獨的表空間當中,并且標記為只讀,這樣會大大加快備份時的速度。
其次,考慮到磁盤的負載均衡,建議把段分開在不同的設備上來保存. 我們需要從兩個不同的角度來進行考慮:
活動性
兩個IO很大的段不應該放在同一個表空間當中,即使這個表空間是由多個數據文件組成,也沒有辦法避免由于IO 爭用造成的性能下降.
相關性
通常情況下,把相關的一些段從一個表空間當中分離出來,典型地來說就是盡可能把表和索引分在不同地表空間,兩個經常需要做連接地大表分在兩個不同地表空間,這樣就可以避免,數據訪問,索引讀取和執行計劃同時對一個表空間進行大量地IO操作。
常用原則
1、一般較大的表或索引單獨分配一個tablespace。
2、Read only對象或Read mostly對象分成一組,存在對應的tablespace中。
3、若tablespace中的對象皆是read only對象,可將tablespace設置成read only模式,在備份時,read only tablespace只需備份一次。
4、高頻率insert的對象分成一組,存在對應的tablespace中。
5、增、刪、改的對象分成一組,存在對應的tablespace中。
6、表和索引分別存于不同的tablespace。
7、存于同一個 tablespace中的表(或索引)的extent 大小最好成倍數關系,有利于空間的重利用和減少碎片。
根據以上原則,數據庫表空間設計如下:原則上每個schema對應一個表空間和一個相應索引表空間;每個schema下的大表對應一個單獨的表空間和索引表空間;對于需要分區的特大表,則每個子分區對應一個單獨的表空間和索引空間。[@more@]
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/8570952/viewspace-911102/,如需轉載,請注明出處,否則將追究法律責任。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的oracle表空间大小规划,关于oracle表空间的规划方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle appen,Oracle中
- 下一篇: hive 集成oracle,hive集成