分割槽表基礎介紹
分割槽表
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分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(4 RANGE_HASH)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(6RANGE_RANGE)Oracle運維
- Oracle分割槽表基礎運維-08Coalescing PartitionsOracle運維
- oracle分割槽表和分割槽表exchangeOracle
- oracle分割槽表和非分割槽表exchangeOracle
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- PG的非分割槽表線上轉分割槽表
- windows11怎麼分割槽硬碟 win11硬碟分割槽大小方法介紹Windows硬碟
- 【MYSQL】 分割槽表MySql
- 非分割槽錶轉換成分割槽表
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- 移動分割槽表和分割槽索引的表空間索引
- Pandas基礎介紹
- Elasticsearch 基礎介紹Elasticsearch
- MySQL 分割槽表探索MySql
- 分割槽表-實戰
- 【Linux】MBR磁碟分割槽表只能有四個分割槽?Linux
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- Linux 學習基礎入門之Linux分割槽Linux
- 分割槽表之自動增加分割槽(11G)
- 1、Oracle 基礎介紹Oracle
- JDBC的基礎介紹JDBC
- ActiveMq的基礎介紹MQ
- MySQL 教程基礎介紹MySql
- SQL SERVER之分割槽表SQLServer
- ORACLE分割槽表梳理系列Oracle
- Spark操作Hive分割槽表SparkHive