2017年4月8日 星期六

規劃和管理表格空間(Tablespace)-3/3

Oracle安裝的表格空間

  • SYSTEM
    • 不能儲存任何使用者segment
    • 使用越多程序化物件如函數、procedure、trigger等等,SYSTEM tablespace會擴張越快,因為這些資料都必須放在data dictionary中。
  • SYSAUX
    • 不能儲存任何使用者segment
    • 如果某一占據SYSAUX表格空間的程式耗費太多的空間,或是嚴重影響使用SYSAUX表格空間的應用程式效率,應該考慮移動這個程式到其他的表格空間
  • TEMP
    • 與其建立一個非常大的暫時性表格空間,不如使用幾個較小的暫時性表格空間,並用一個暫時性表格空間群組來裝載。
  • UNDOTBS1
    • 一個資料庫有多個UNDO表格空間,但一次只能有一個是有效的。
    • 由於每個instance會管理本身所屬的undo表格空間,因此RAC環境中每個節點都要能取得一個UNDO表格空間。
  • USERS
    • 用於每個資料庫使用者建立各式各樣的segment
    • 不適用於任何生產應用程式之上
    • 不同的應用程式和segment類型需要建立不同的表格空間
  • EXAMPLE
    • 在production環境中應該要刪除這個表格空間
區段的分離

  • 大型和小型區段應該分別置於不同的表格空間。
  • table segment 及其對應的 index segment應置於不同的表格空間。
  • 每個應用程式應置於不同的表格空間。
  • 低用量segment與高用量segment應分開。
  • 靜態的segment與大量DML的segment應分開。
  • 唯讀資料表應放置在自己的表格空間。
  • Data warehouse所用的過度資料表應該放置於自己所屬的表格空間。
  • 在表格空間中,應該建立適當大小的block。以完整資料表掃描來存取segment,或是以每一個資料列來存取segment。
  • materialized view應放置在與基礎資料表不同的表格空間
  • 對於partition table和index,每個partition都應該有專屬的表格空間。
利用EM Database Control,不論是在檔案或是物件的層次都可以找出hotspot,進而辨識出表格空間的問題。

沒有留言:

張貼留言