oracle表分割槽自我理解

greenteazsh發表於2011-02-23
1、分割槽表
       通過分割槽技術可以有效地解決大表、大索引帶來的問題。使用者對分割槽表執行的 SQL 查詢或 DML 語句與對普通資料表的語句一樣。但是定義了分割槽後,DDL 語句可以訪問、操作一個單獨的分割槽,而不是整個表或索引,這樣通過分割槽技術就能簡化對大資料庫物件的管理工作。分割槽對應用程式是透明的。(要注意分割槽對應用程式是透明的,查詢、插入等語句對分割槽和不分割槽表沒有區別。但可以針對單獨的一個表分割槽進行處理,語句為 select * from table table_part partition(part1))。
        表分割槽方法有範圍分割槽、列表分割槽、雜湊分割槽和複合分割槽。
       範圍分割槽:
       CREATE TABLE sales_range (
  salesman_id NUMBER(5),
  salesman_name VARCHAR2(30),
  sales_amount NUMBER(10),
  sales_date DATE)
PARTITION BY RANGE(sales_date)(
PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','MM/DD/YYYY')),
PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','MM/DD/YYYY')),
PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','MM/DD/YYYY')),
PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','MM/DD/YYYY'))
);
        列表分割槽:
        CREATE TABLE sales_list(
  salesman_id NUMBER(5),
  salesman_name VARCHAR2(30),
  sales_state VARCHAR2(20),
  sales_amount NUMBER(10),
  sales_date DATE)
PARTITION BY LIST(sales_state)(
PARTITION sales_west VALUES('California', 'Hawaii'),
PARTITION sales_east VALUES ('New York', 'Virginia', 'Florida'),
PARTITION sales_central VALUES('Texas', 'Illinois'),
PARTITION sales_other VALUES(DEFAULT)
);
          雜湊分割槽:
          CREATE TABLE sales_hash(
  salesman_id NUMBER(5),
  salesman_name VARCHAR2(30),
  sales_amount NUMBER(10),
  week_no NUMBER(2))
PARTITION BY HASH(salesman_id)
PARTITIONS 4
STORE IN (ts1, ts2, ts3, ts4);
 
          以下是關於何時應該對錶進行分割槽的一些建議:
  • 如果表資料量超過 2GB,就應該考慮進行分割槽。
  • 如果表中包含歷史資料,且新資料會被新增到最新的表空間中。典型的例子是一種歷史表,其中只有當前月份的資料可以被修改,而其他十一個月的資料為只讀。

2、索引:

b-tree索引可以同樣使用。點陣圖索引需要為本地索引,和非分割槽表不用同樣使用。

3、非分割槽錶轉為分割槽表方法

       如果此分割槽表中,所涉及的查詢條件sql謂詞都包含某個欄位,比如時間stime,可以依照時間進行分割槽。首先建一個和分割槽表一樣的資料表,是分割槽表,用stime做分割槽欄位。然後insert into table_test_partition values select * from table_test。oracle會依據分割槽特性,自動插入到相應表分割槽中。然後此錶轉換為分割槽表,新的應用可以從此表中進行查詢。(這個辦法比較土,但可行,就是會慢一些,因為非分割槽表的資料量都是比較大的。)

 

 

      

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9521459/viewspace-687794/,如需轉載,請註明出處,否則將追究法律責任。

相關文章