程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 有關Oracle數據庫10g中的分區功能

有關Oracle數據庫10g中的分區功能

編輯:Oracle數據庫基礎
Oracle 分區功能可以提高許多應用程序的可管理性、性能與可用性。通過分區功能,可以將表、索引和索引組織表進一步細分為段,從而能夠更精確地管理和訪問這些數據庫對象。Oracle 提供了種類繁多的分區方案以滿足每種業務要求。而且,因為在 SQL 語句中分區是完全透明的,所以該功能幾乎可應用於任何應用程序。

  分區功能的優勢

  分區功能通過改善可管理性、性能和可用性,從而為各式應用程序帶來了極大的好處。通常,分區可以使某些查詢以及維護操作的性能大大提高。此外,分區還可以極大簡化常見的管理任務。通過分區,數據庫設計人員和管理員能夠解決前沿應用程序帶來的一些難題。分區是構建千兆字節數據系統或超高可用性系統的關鍵工具。

  分區功能的基本知識

  分區功能能夠將表、索引或索引組織表進一步細分為段。這些數據庫對象的段叫做分區。每個分區有自己的名稱,還可以選擇自己的存儲特性。從數據庫管理員的角度來看,一個分區後的對象具有多個段,這些段既可進行集體管理,也可單獨管理。這就使數據庫管理員在管理分區後的對象時有相當大的靈活性。但是,從應用程序的角度來看,分區後的表與非分區表完全相同,使用 SQL DML 命令訪問分區後的表時,無需任何修改。

  表的分區是通過“分區鍵”來實現的,分區鍵指的是一些列,這些列決定了某一行所在的分區。Oracle 數據庫 10g 提供了六項技術用於對表進行分區:

  范圍分區

  每個分區都由一個分區鍵值范圍指定(對於一個以日期列作為分區鍵的表,“2005 年 1 月”分區包含分區鍵值為從“2005 年 1 月 1 日”到“2005 年 1 月 31 日”的行)。

  列表分區

  每個分區都由一個分區鍵值列表指定(對於一個地區列作為分區鍵的表,“北美”分區可能包含值“加拿大”“美國”和“墨西哥”)。

  散列分區

  將散列算法用於分區鍵來確定指定行所在的分區

  組合范圍散列分區

  范圍和散列分區技術的組合,通過該組合,首先對表進行范圍分區,然後針對每個單獨的范圍分區再使用散列分區技術進一步細分。索引組織表只能進行范圍分區。

   

  組合范圍列表分區

  范圍和列表分區技術的組合,通過該組合,首先對表進行范圍分區,然後針對每個單獨的范圍分區再使用列表分區技術進一步細分。索引組織表可以按范圍、列表或散列進行分區。

  Oracle 數據庫 10g 還提供了三種類型的分區索引:

  本地索引

  本地索引是其分區方式與其所在基礎表的分區方式一模一樣的索引。本地索引的每個分區僅對應於其所在基礎表的一個分區。

  全局分區索引

  全局分區索引是使用不同於其所在表的分區鍵進行分區的索引,其所在表可以是分區表或非分區表。全局分區的索引可以使用范圍或散列分區進行分區。例如,某個表可以按月份進行范圍分區,因此具有十二個分區,而該表上的索引則可以使用不同的分區鍵進行范圍分區,從而具有不同的分區數量。

  全局非分區索引

  全局非分區索引基本上和非分區表的索引一樣。索引結構是不分區的。

  Oracle 提供了一系列豐富的技術,可用於對表、索引和索引組織表進行分區,因此可以針對任何業務環境中的任何應用程序進行最佳的分區 Oracle 還提供一套完整的 SQL 命令,用於管理分區表。其中包括添加新分區、刪除分區、分拆分區以及合並分區的命令。

  用分區功能提高可管理性

   

  通過 Oracle 分區功能,可將表和索引分成更多、更小的可管理單元,從而使數據庫管理員能以“化整為零,個個擊破”的方式管理數據。

  使用分區功能,維護操作可集中於表的特定部分。例如,數據庫管理員可以只對表的一部分做備份,而不必對整個表做備份。對整個數據庫對象的維護操作,可以在每個分區的基礎上進行,從而將維護工作分解成更容易管理的小塊。

  利用分區功能提高可管理性的一個典型用法是支持數據倉庫中的‘滾動視窗’加載進程。假設數據庫管理員每周向表中加載新數據。可以對該表進行范圍分區,使每個分區包含一周的數據。這樣加載進程只是簡單地添加新的分區。添加一個分區的操作比修改整個表效率高很多,因為 DBA 不需要修改任何其他分區。

  用分區功能提高性能

  由於限制了所檢查或操作的數據數量,同時支持並行任務執行,Oracle 分區功能實現了性能上增益。這些特性包括:

  分區修整

  分區修整是用分區功能提高性能的最簡單最有價值的手段。分區修整常常能夠將查詢性能提高幾個數量級。例如,假設某個應用程序包含一個存儲訂單歷史記錄的 Orders 表,並且此表已按周分區。查詢一周的訂單只需訪問該訂單表的一個分區。如果該訂單表包含兩年的歷史記錄,這個查詢只需要訪問一個分區而不是一百零四個。該查詢的執行速度因為分區修整而有可能快一百倍。分區修整能與所有其他 Oracle 性能特性協作。Oracle 能將分區修整功能與任何索引技術、聯接技術或並行訪問方法結合使用。

  分區智能聯接

  分區功能可以通過稱為分區智能聯接的技術提高多表聯接的性能。當兩個表要聯接在一起,而且每個表都用聯接鍵來分區時,就可以使用分區智能聯接。分區智能聯接將大型聯接分解成較小的發生在各個分區間的聯接,從而用較少的時間完成全部聯接。這就給串行和並行的執行都能帶來顯著的性能改善。

  用分區功能提高可用性

  分區的數據庫對象具有分區獨立性。該分區獨立性特點可能是高可用性戰略的一個重要部分,例如,如果分區表的一個分區不能用,但該表的所有其他分區仍然保持在線並可用。那麼這個應用可以繼續針對該分區表執行查詢和事務處理,只要不是訪問不可用的分區,數據庫操作仍然能夠成功運行。

  數據庫管理員可以指定各分區存放在不同的表空間裡,從而讓管理員隔離其它表分區針對單個分區進行備份與恢復操作。還有,分區功能可以減少計劃停機時間。由於分區功能改善了性能,使數據庫管理員能用相對較少的時間完成大型數據庫對象的維護工作。

  未來發展方向

  自從引入分區技術以來,Oracle 公司在每次推出重要版本時都會增加新的分區方法。Oracle8 引入了范圍分區功能,Oracle8i 引入了散列和組合范圍散列分區功能,Oracle9i 引入了列表分區功能。在最新版本 Oracle 數據庫 10g 中,則增強了用於索引組織表和全局分區索引的分區策略,並且擴展了其用於所有分區維護操作的並發索引維護功能。Oracle 公司致力於不斷完善分區技術,確保滿足所有的業務需求。

  結論

  具有 Oracle 分區功能的 Oracle 數據庫 10g 可以顯著增強幾乎任何數據庫應用程序的可管理性、性能和可用性。分區功能可用於前沿應用程序,分區功能確實能夠成為保障這些應用程序成功的關鍵技術成分。同時,分區功能也可用於較為普通的數據庫應用,來簡化這些應用的管理工作,降低管理成本。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved