Oracle分割槽表(Partition Table)
Oracle提供了分割槽技術以支援VLDB(Very Large DataBase)。分割槽表透過對分割槽列的判斷,把分割槽列不同的記錄,放到不同的分割槽中。分割槽完全對應用透明。
Oracle的分割槽表可以包括多個分割槽,每個分割槽都是一個獨立的段(SEGMENT),可以存放到不同的表空間中。查詢時可以透過查詢表來訪問各個分割槽中的資料,也可以透過在查詢時直接指定分割槽的方法來進行查詢。
分割槽提供以下優點:
由於將資料分散到各個分割槽中,減少了資料損壞的可能性;
可以對單獨的分割槽進行備份和恢復;
可以將分割槽對映到不同的物理磁碟上,來分散IO;
提高可管理性、可用性和效能。
Oracle提供了以下幾種分割槽型別:
範圍分割槽(range);
雜湊分割槽(hash);
列表分割槽(list);
範圍-雜湊複合分割槽(range-hash);
範圍-列表複合分割槽(range-list)。
索引也可以進行分割槽,分割槽索引有兩種型別:global 和local。對於local索引,每一個表分割槽對應一個索引分割槽,當表的分割槽發生變化時,索引的維護由Oracle自動進行。對於global索引,可 以選擇是否分割槽,而且索引的分割槽可以不與表分割槽相對應。當對分割槽進行維護操作時,通常會導致全域性索引的INVALDED,必須在執行完操作後 REBUILD。Oracle9i提供了UPDATE GLOBAL INDEXES語句,可以使在進行分割槽維護的同時重建全域性索引。
全域性索引可以包含多個分割槽的值 區域性索引比全域性索引容易管理,而全域性索引比較快
注意:不能為雜湊分割槽 或者 子分割槽建立全域性索引
Oracle的分割槽功能十分強大。不過用起來發現有兩點不大方便:
第一是已經存在的表沒有方法可以直接轉化為分割槽表。不過Oracle提供了線上重定義表的功能,可以透過這種方式來完成普通表到分割槽表的轉化。可以參考這個例子:http://blog.itpub.net/post/468/13091
第二點是如果採用了local分割槽索引,那麼在增加表分割槽的時候,索引分割槽的表空間是不可控制的。如果希望將表和索引的分割槽分開到不同的表空間且不同索引分割槽也分散到不同的表空間中,那麼只能在增加分割槽後,對新增的分割槽索引單獨rebuild。
Oracle最大允許存在多少個分割槽呢?
我們可以從Oracle的上找到這個資訊,對於Oracle9iR2:
Tables can be partitioned into up to 64,000 separate partitions.
對於Oracle10gR2,Oracle增強了分割槽特性:
Tables can be partitioned into up to 1024K-1 separate partitions.
關於何時應該進行分割槽,Oracle有如下建議:
■ Tables greater than 2GB should always be considered for partitioning.
■
Tables containing historical data, in which new data is added into the
newest partition. A typical example is a historical table where only
the current month's data is updatable and the other 11 months are read
only.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017329/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分割槽表PARTITION table
- 分割槽表PARTITION table(轉)
- oracle分割槽partition及分割槽索引partition index(一)Oracle索引Index
- 【實驗】【PARTITION】RANGE分割槽表截斷表分割槽(Truncate Partition)
- 【實驗】【PARTITION】RANGE分割槽表移動表分割槽(Move Partition)
- Oracle Interval Partition 自動分割槽表-實驗Oracle
- ORACLE 範圍分割槽 partition-range分割槽Oracle
- 【實驗】【PARTITION】RANGE分割槽表重新命名錶分割槽(Rename Partition)
- MySQL 分割槽表 partition線上修改分割槽欄位MySql
- 【實驗】【PARTITION】RANGE分割槽表合併分割槽
- 【實驗】【PARTITION】RANGE分割槽表增加分割槽
- 【實驗】【PARTITION】RANGE分割槽表刪除分割槽
- Oracle 分割槽(partition)技術Oracle
- partition 分割槽表重新命名
- oracle分割槽及分割槽索引partition_partition index_維護(一)Oracle索引Index
- oracle分割槽及分割槽索引partition_partition index_維護(二)Oracle索引Index
- oracle分割槽及分割槽索引partition_partition index_維護(三)Oracle索引Index
- oracle分割槽及分割槽索引partition_partition index_維護(四)Oracle索引Index
- Oracle查詢Interval partition分割槽表內資料Oracle
- oracle reference partition引用分割槽(一)Oracle
- oracle list partition列表分割槽(一)Oracle
- oracle partition分割槽_分割槽列為空測試(一)Oracle
- 非分割槽錶轉換為分割槽表和partition indexIndex
- Oracle 12.2之後ALTER TABLE .. MODIFY轉換非分割槽表為分割槽表Oracle
- oracle分割槽及分割槽索引partition_partition index_維護(五)_快捷方法Oracle索引Index
- oracle分割槽表和分割槽表exchangeOracle
- Oracle Partition 分割槽詳細總結Oracle
- oracle hash partition雜湊分割槽(一)Oracle
- 分割槽表概念 partitioning table
- oracle分割槽表和非分割槽表exchangeOracle
- Oracle分割槽表及分割槽索引Oracle索引
- oracle composite partition組合分割槽_composite partition rangeOracle
- partition 分割槽表移動到其他表空間
- Oracle 表分割槽Oracle
- oracle分割槽表Oracle
- oracle表分割槽Oracle
- Oracle 分割槽表Oracle
- oracle10g partition分割槽表與物化檢視materialized viewOracleZedView