Oracle分割槽技術

2021-09-30 05:50:53 字數 1575 閱讀 9614

oracle的分割槽(partitioning option)是一種處理超大型表的技術。分割槽是一種「分而治之」的技術,通過將大表和索引分成可以管理的小塊,從而避免了對每個表作為乙個大的、單獨的物件進行管理,為大量資料提供了可伸縮的效能。分割槽通過將操作分配給更小的儲存單元,減少了需要進行管理操作的時間,並通過增強的並行處理提高了效能,通過遮蔽故障資料的分割槽,還增加了可用性。

oracle的分割槽表的劃分方法包括:按字段值進行劃分的範圍分割槽;按字段的hash函式值進行的劃分hash分割槽;先按範圍劃分,再按hash劃分的復合分割槽;在oracle9i中又增強了按字段值列表進行劃分的列表(listing)分割槽方法。

管理員可以指定每個分割槽的儲存屬性,分割槽在宿主檔案系統中的放置情況,這樣便增加了對超大型資料庫的控制粒度(granularity)。分割槽可以被單獨地刪除、卸出或裝入、備份、恢復,因此減少了需要進行管理操作的時間。

還可以為表分割槽建立單獨的索引分割槽,從而減少了需要進行索引維護操作的時間。此外,還提供了種類繁多的區域性和全域性的索引技術。分割槽操作也可以被並行執行。

分割槽技術還提高了資料的可用性。當部分資料由於故障或其它原因不可用時,其它分區內的資料可用不收影響繼續使用。

分割槽對應用是透明的,可以通過標準的sql語句對分割槽表進行操作。oracle 的優化器在訪問資料時會分析資料的分割槽情況,在進行查詢時,那些不包含任何查詢資料的分割槽將被忽略,從而大大提高系統的效能。

分割槽原則

1.表分割槽的指南

a、表的大小

對於大表進行分割槽,將有益於大表操作的效能和大表的資料維護。通常當表的大小超過1.5gb-2gb,或對於oltp系統,表的記錄超過1000萬,都應考慮對錶進行分割槽。

b、資料訪問特性

基於表的大部分查詢應用,只訪問表中少量的資料。對於這樣表進行分割槽,可充分利用分割槽排除無關資料查詢的特性。

c、資料維護

某些表的資料維護,經常按時間段刪除成批的資料,例如按月刪除歷史資料。對於這樣的表需要考慮進行分割槽,以滿足維護的需要。因為刪除(delete)大量的資料,對系統開銷很大,有時甚至是不可接受的。

d、唯讀資料

如果乙個表中大部分資料都是唯讀資料,通過對錶進行分割槽,可將唯讀資料儲存在唯讀表空間中,對於資料庫的備份是非常有益的。

e、並行資料操作(parallel dml)

對於經常執行並行操作(如parallel insert,parallel update等)的表應考慮進行分割槽。

f、表的可用性

當對表的部分資料可用性要求很高時,應考慮進行表分割槽。

2.選擇分割槽字段(partition key)

當確定分割槽欄位時,有兩個主要因素特別需要考慮:

a、增強表的管理和維護性

通過partition key,可以使資料維護基於某個分割槽進行,如drop或truncate乙個或多個分割槽。通過paratition key可控制唯讀的資料儲存在相應的分割槽中,且這些分割槽儲存在唯讀的表空間裡,這將提高資料備份的效能。這類partition key通常與時間相關。

b、提高訪問表的效能

通過partition key,可使查詢的資料定位在乙個或少量的分割槽中;這需要考慮最常用的查詢條件。注意在考慮提高查詢效率這個因素的同時,還應兼顧資料維護管理的因素,盡可能地避免相互間地衝突。

oracle分割槽技術提高查詢效率

當表中的資料量不斷增大,查詢資料的速度就會變慢,應用程式的效能就會下降,這時就應該考慮對錶進行分割槽。表進行分割槽後,邏輯上表仍然是一張完整的表,只是將表中的資料在物理上存放到多個表空間 物理檔案上 這樣查詢資料時,不至於每次都掃瞄整張表。下面介紹如何使用分割槽增加查詢效率 range分割槽 就是區...

oracle分割槽技術提高查詢效率

當表中的資料量不斷增大,查詢資料的速度就會變慢,應用程式的效能就會下降,這時就應該考慮對錶進行分割槽。表進行分割槽後,邏輯上表仍然是一張完整的表,只是將表中的資料在物理上存放到多個表空間 物理檔案上 這樣查詢資料時,不至於每次都掃瞄整張表。下面介紹如何使用分割槽增加查詢效率 range分割槽 就是區...

mysql分割槽技術

在mysql 5.1.3之後引入和partition 分割槽 的概念。這個是個好東東。以前遇到乙個大表的時候,我們會手動將其分為幾個小表 就是分表操作 但是分表操作有幾個缺點 1 麻煩,這裡指的麻煩是不僅對於呼叫分表的sql語句的處理上,也是分表的具體操作步驟上。2 當乙個表從單錶變為分表的時候,上...