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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle查詢Interval partition分割槽表內資料Oracle
- Oracle Partition 分割槽詳細總結Oracle
- 分割槽Partition
- Oracle 12.2之後ALTER TABLE .. MODIFY轉換非分割槽表為分割槽表Oracle
- oracle分割槽表和分割槽表exchangeOracle
- oracle分割槽表和非分割槽表exchangeOracle
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- 分割槽partition知識點
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- ORACLE分割槽表梳理系列Oracle
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- oracle將表配置為分割槽表Oracle
- oracle 普通表-分割槽表改造流程Oracle
- Spark學習——分割槽Partition數Spark
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- 分割槽函式Partition By的基本用法函式
- Kafka分割槽分配策略(Partition Assignment Strategy)Kafka
- 對oracle分割槽表的理解整理Oracle
- Oracle SQL調優之分割槽表OracleSQL
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- ORACLE刪除-表分割槽和資料Oracle
- 分割槽函式partition by的基本用法【轉載】函式
- Oracle分割槽表基礎運維-07增加分割槽(4 RANGE_HASH)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(6RANGE_RANGE)Oracle運維
- Oracle drop分割槽表單個分割槽無法透過閃回恢復Oracle
- oracle分割槽表的分類及測試Oracle
- oracle 19C新特性——混合分割槽表Oracle
- oracle 更改分割槽表資料 ora-14402Oracle
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle