oracle表分割槽自我理解
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'))
);
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)
);
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);
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 對oracle分割槽表的理解整理Oracle
- oracle分割槽表和分割槽表exchangeOracle
- oracle分割槽表和非分割槽表exchangeOracle
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- ORACLE分割槽表梳理系列Oracle
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- oracle將表配置為分割槽表Oracle
- oracle 普通表-分割槽表改造流程Oracle
- 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運維
- Oracle SQL調優之分割槽表OracleSQL
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- Oracle 12.2之後ALTER TABLE .. MODIFY轉換非分割槽表為分割槽表Oracle
- ORACLE刪除-表分割槽和資料Oracle
- 理解MySQL分割槽MySql
- 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
- PG的非分割槽表線上轉分割槽表
- 【MYSQL】 分割槽表MySql
- index_oracle索引梳理系列及分割槽表梳理IndexOracle索引
- Oracle查詢Interval partition分割槽表內資料Oracle
- ORACLE 19c 新特性之混合分割槽表Oracle
- 非分割槽錶轉換成分割槽表
- 移動分割槽表和分割槽索引的表空間索引