分區表基本知識

來源:互聯網
上載者:User
分區表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         chifan2003-6-1         chifan SQL> select * from ran_tab partition(part_2); RANGE_KEY_COLUMN DATA---------------- --------------------2005-5-1         chifan2005-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                         USER02RAN_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 createdSQL> 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 createdSQL> 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_APART_2                         IND_A

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.