分割槽表基礎介紹
分割槽表
Oracle提供了範圍分割槽、雜湊分割槽、列表分割槽、組合分割槽4種分割槽的方法
範圍分割槽:按照列值範圍將資料分佈到不同分割槽
SQL> CREATE TABLE ran_tab (
2 range_key_column date ,
3 data varchar2(20)
4 )
5 PARTITION BY RANGE (range_key_column)
6 ( PARTITION part_1 VALUES LESS THAN(to_date('01/01/2005','dd/mm/yyyy')),
7 PARTITION part_2 VALUES LESS THAN(to_date('01/01/2006','dd/mm/yyyy'))
8 )
9 /
插入值
SQL> insert into ran_tab(range_key_column,data) values(to_date('2005-05-01','yyyy-mm-dd'),'chifan');
SQL> insert into ran_tab(range_key_column,data) values(to_date('2005-06-01','yyyy-mm-dd'),'chifan');
檢視分割槽
SQL> select * from ran_tab partition(part_1);
RANGE_KEY_COLUMN DATA
---------------- --------------------
2004-6-1 chifan
2003-6-1 chifan
SQL> select * from ran_tab partition(part_2);
RANGE_KEY_COLUMN DATA
---------------- --------------------
2005-5-1 chifan
2005-6-1 chifan
檢視分割槽表
SQL> select segment_name,partition_name,tablespace_name
2 from user_segments where segment_name='RAN_TAB';
SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME
------------------- ----------- ------------------------------ ---------------
RAN_TAB PART_1 USER02
RAN_TAB PART_2 USER02
增加分割槽
SQL> alter table ran_tab add partition part_3 values less than (to_date('2007-01-01','yyyy-mm-dd'));
Table altered
刪除分割槽
SQL> alter table ran_tab drop partition part_3;
Table altered
雜湊分割槽:對列進行hash演算法的分割槽,將資料均勻的分佈到各個分割槽
SQL> CREATE TABLE p_hash_emp
2 ( empno int,
3 ename varchar2(20)
4 )
5 PARTITION BY HASH (empno)
6 ( partition part_1 tablespace users,
7 partition part_2 tablespace user02
8 )
9 /
Table created
插入資料
SQL> insert into p_hash_emp values(1,'a');
SQL> insert into p_hash_emp values(2,'b');
SQL> insert into p_hash_emp values(3,'c');
SQL> insert into p_hash_emp values(4,'d');
SQL> insert into p_hash_emp values(5,'de');
檢視
SQL> select * from p_hash_emp partition(part_1);
EMPNO ENAME
--------------------------------------- --------------------
2 b
5 de
SQL> select * from p_hash_emp partition(part_2);
EMPNO ENAME
--------------------------------------- --------------------
1 a
3 c
4 d
新增分割槽
SQL> alter table p_hash_emp add partition part_3;
Table altered
列表分割槽:將離散的資料有效的部署到不同分割槽
SQL> create table region_emp(
2 deptno number,
3 dname varchar2(10)
4 )
5 partition by list(dname)
6 (partition p1 values ('a'),
7 partition p2 values ('b','c'),
8 partition p3 values ('d','e')
9 )
10 /
Table created
SQL> insert into region_emp values(1,'a');
SQL> insert into region_emp values(2,'b');
SQL> insert into region_emp values(3,'e');
SQL> select * from region_emp partition(p1);
DEPTNO DNAME
---------- ----------
1 a
SQL> select * from region_emp partition(p2);
DEPTNO DNAME
---------- ----------
2 b
SQL> select * from region_emp partition(p3);
DEPTNO DNAME
---------- ----------
3 e
分割槽表上建立索引
對於分割槽表來說,每個表分割槽對應一個分割槽段,當在分割槽表上建立索引時既可以建立全域性索引,也可以建立分割槽索引。如果建立全域性索引,索引資料會存放到一個索引段中,如果建立分割槽索引,則索引資料會存放到幾個索引分割槽段中去
全域性索引: 預設情況下載分割槽表上建立的索引索引全域性索引,建立全域性索引時也可以加引數global,當然預設就是這個值
SQL> create index ind_a on ran_tab(range_key_column);
Index created
SQL> create index ind_a on ran_tab(range_key_column) global;
Index created
兩句話意思一樣,只是前面省略預設引數
分割槽索引:建立分割槽索引時,索引資料存放到幾個分割槽段中,分割槽索引是基於分割槽表建立的,不能基於普通表建立,並且分割槽個數與表的分割槽是完全對應的
SQL> create index ind_a on ran_tab(range_key_column) local;
Index created
檢視分割槽索引
SQL> select partition_name,index_name from user_ind_partitions;
PARTITION_NAME INDEX_NAME
------------------------------ ------------------------------
PART_1 IND_A
PART_2 IND_A
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10678398/viewspace-700073/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle分割槽表介紹Oracle
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- MySQL分割槽介紹MySql
- MySQL Key分割槽表建立方法介紹MySql
- mysql表分割槽技術詳細介紹MySql
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- 1.分割槽表基礎知識
- MySQL 分割槽介紹總結MySql
- Oracle分割槽表基礎運維-07增加分割槽(4 RANGE_HASH)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(6RANGE_RANGE)Oracle運維
- oracle分割槽表和分割槽表exchangeOracle
- Oracle分割槽表基礎運維-08Coalescing PartitionsOracle運維
- 全面學習分割槽表及分割槽索引(13)--分隔表分割槽索引
- oracle分割槽表和非分割槽表exchangeOracle
- Linux Swap交換分割槽介紹總結Linux
- Oracle的分割槽修剪介紹:Partition PruningOracle
- mysql分割槽功能、例項詳細介紹MySql
- Oracle分割槽表及分割槽索引Oracle索引
- INTERVAL分割槽表鎖分割槽操作
- 全面學習分割槽表及分割槽索引(9)--刪除表分割槽索引
- 全面學習分割槽表及分割槽索引(11)--合併表分割槽索引
- 全面學習分割槽表及分割槽索引(12)--修改list表分割槽索引
- 學習筆記】分割槽表和分割槽索引——新增表分割槽(二)筆記索引
- 如何查詢分割槽表的分割槽及子分割槽
- 使用split對分割槽表再分割槽
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引
- 分割槽表及分割槽索引建立示例索引
- 全面學習分割槽表及分割槽索引(10)--交換分割槽索引