Welcome 微信登录

首页 / 数据库 / MySQL / 关于Oracle分区技术初步认识

一、  分区类型1. 范围分区(Range Partitioning)适用于  连续/按时间排序的数据2. 散列分区(Hash Partitioning)适用于  不连续/数据记录固定的数据3. 组合分区 Range-HashRange-List4. 列表分区 List Partitioning适用于对不连续域的数据分区更准确的控制数据的分区存储适用于 位置类数据二、  分区表的维护准备工作SYS@ORA11G>create tablespace sales_ts01  2  datafile"/u01/app/Oracle/oradata/ORA11G/sales_ts01_01.dbf" size 10m; Tablespace created. SYS@ORA11G>create tablespace sales_ts02  2  datafile"/u01/app/oracle/oradata/ORA11G/sales_ts02_01.dbf" size 10m; Tablespace created. SYS@ORA11G>create tablespace sales_ts03  2  datafile"/u01/app/oracle/oradata/ORA11G/sales_ts03_01.dbf" size 10m; Tablespace created. SYS@ORA11G>create tablespace sales_ts04  2  datafile"/u01/app/oracle/oradata/ORA11G/sales_ts04_01.dbf" size 10m; Tablespace created. SYS@ORA11G>create tablespace sales_ts05  2  datafile"/u01/app/oracle/oradata/ORA11G/sales_ts05_01.dbf" size 10m; Tablespace created. SYS@ORA11G>create tablespace sales_ts06  2  datafile"/u01/app/oracle/oradata/ORA11G/sales_ts06_01.dbf" size 10m; Tablespace created. SYS@ORA11G>SYS@ORA11G>SYS@ORA11G>SYS@ORA11G>conn tyger/tygerConnected.TYGER@ORA11G>TYGER@ORA11G>TYGER@ORA11G>CREATE TABLE SALES(PROD_ID NUMBER,CUST_ID NUMBER,TIME_ID DATE,CHANNEL_ID NUMBER,PROMO_ID NUMBER,QUANTITY_SOLD NUMBER(10,2),AMOUNT_SOLD NUMBER(10,2))PARTITION BY RANGE(TIME_ID)(PARTITION sales01 values less than ("01-Feb-2004")TABLESPACE SALES_TS01,PARTITION sales02 values less than ("01-Mar-2004")TABLESPACE SALES_TS02,PARTITION sales03 values less than ("01-Apr-2004")TABLESPACE SALES_TS03,PARTITION sales04 values less than ("01-May-2004")TABLESPACE SALES_TS04,PARTITION sales05 values less than ("01-Jun-2004")TABLESPACE SALES_TS05,PARTITION sales06 values less than ("01-Jul-2004")TABLESPACE SALES_TS06);  2    3  4    5    6  7    8    9  10  11  12  13  14  15  16  17  Table created.TYGER@ORA11G>selectTABLE_NAME,PARTITIONING_TYPE,SUBPARTITIONING_TYPE,STATUS  2  from user_part_tables; TABLE_NAME                    PARTITION SUBPARTIT STATUS------------------------------ --------- -----------------SALES                          RANGE    NONE    VALIDTYGER@ORA11G>col table_name for a20TYGER@ORA11G>col tablespace_name for a20TYGER@ORA11G>l  1  selectTABLE_NAME,PARTITION_NAME,TABLESPACE_NAME  2* fromuser_tab_partitionsTYGER@ORA11G>/ TABLE_NAME          PARTITION_NAME                TABLESPACE_NAME-------------------- --------------------------------------------------SALES              SALES01                      SALES_TS01SALES              SALES02                      SALES_TS02SALES              SALES03                      SALES_TS03SALES              SALES04                      SALES_TS04SALES              SALES05                        SALES_TS05SALES              SALES06                      SALES_TS06 6 rows selected.        语法:ALTERTABLE                        ALTER INDEX• • ADD PARTITION                  -DROP PARTITION• • COALESCE PARTITION            - MODIFY PARTITION• • DROP PARTITION                - MODIFY DEFAULT ATTRIBUTES• • EXCHANGE PARTITION            - MODIFY PARTITION COALESCE• • MERGE PARTITIONS              - REBUILD PARTITION• • MODIFY PARTITION              - RENAME PARTITION• • MODIFY DEFAULT                -SPLIT PARTITIONATTRIBUTES                        - UNUSABLE• • MOVE PARTITION• • RENAME PARTITION• • SPLIT PARTITION 2.1 删除表分区Alter table sales droppartition sales01;TYGER@ORA11G>alter table sales drop partitionsales01; Table altered. TYGER@ORA11G>selectTABLE_NAME,PARTITION_NAME,TABLESPACE_NAME  2  from user_tab_partitions; TABLE_NAME          PARTITION_NAME                TABLESPACE_NAME-------------------- --------------------------------------------------SALES              SALES02                      SALES_TS02SALES              SALES03                        SALES_TS03SALES              SALES04                      SALES_TS04SALES              SALES05                      SALES_TS05SALES              SALES06                      SALES_TS062.2 增加表分区  增加分区的分区范围必须比当前分区的最后一个分区更高TYGER@ORA11G>alter table sales add partitionsales01 values less than ("01-Feb-2004") tablespace sales_ts01;alter table sales add partition sales01 values lessthan ("01-Feb-2004") tablespace sales_ts01                                *ERROR at line 1:ORA-14074: partition bound mustcollate higher than that of the last partition  TYGER@ORA11G>alter table sales add partitionsales01  2  values less than ("01-Aug-2004") tablespacesales_ts01; Table altered. TYGER@ORA11G>selecttable_name,partition_name,tablespace_name  2  from user_tab_partitions; TABLE_NAME          PARTITION_NAME                TABLESPACE_NAME-------------------- --------------------------------------------------SALES              SALES02                        SALES_TS02SALES              SALES03                      SALES_TS03SALES              SALES04                      SALES_TS04SALES              SALES05                      SALES_TS05SALES              SALES06                        SALES_TS06SALES              SALES01                      SALES_TS01  2.3 合并分区    · 必须是相邻的范围分区·  继承最大的范围边界TYGER@ORA11G>alter table sales  2  merge partitions sales06,sales01 intopartition sales07; Table altered. TYGER@ORA11G>select table_name,partition_name,tablespace_name  2  from user_tab_partitions; TABLE_NAME          PARTITION_NAME                TABLESPACE_NAME-------------------- --------------------------------------------------SALES              SALES07                        USERSSALES              SALES02                      SALES_TS02SALES              SALES03                      SALES_TS03SALES              SALES04                      SALES_TS04SALES              SALES05                        SALES_TS05 2.4 移动表分区·  移动分区数据到另一个表空间·  重新整理数据减少碎片·  改变物理属性TYGER@ORA11G>alter table sales move partitionsales01  2  tablespace sales_ts_move; 2.5 拆分表分区  拆分表分区———一个分区变的太大,导致备份,恢复和分区性能操作花费时间太长,重新分配I/O负载。TYGER@ORA11G>alter table sales split partition sales07  2  at ("01-Jul-2004")          // 按哪个时间点拆分  3  into (partition sales01 tablespacesales_ts01,  4        partition sales06 tablespacesales_ts06); Table altered. TYGER@ORA11G>selecttable_name,partition_name,tablespace_name  2  from user_tab_partitions; TABLE_NAME          PARTITION_NAME                TABLESPACE_NAME-------------------- --------------------------------------------------SALES              SALES02                      SALES_TS02SALES              SALES03                        SALES_TS03SALES              SALES04                      SALES_TS04SALES              SALES05                      SALES_TS05SALES              SALES06                      SALES_TS06SALES              SALES01                        SALES_TS01 6 rows selected.更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-09/106371p2.htm
  • 1
  • 2
  • 下一页
Linux下构建MySQL集群简单分析Oracle的数据存储相关资讯      Oracle分区 
  • Oracle 11g维护分区(七)——  (08/06/2015 15:38:09)
  • Oracle 11g维护分区(二)——  (07/20/2015 13:38:04)
  • Oracle 11g维护分区概述  (07/17/2015 11:50:15)
  • Oracle 11g维护分区(三)——  (07/23/2015 16:36:30)
  • Oracle 11g维护分区(一)——  (07/17/2015 12:50:26)
  • Oracle DB 分区特性概述 Overview   (01/20/2015 20:05:10)
本文评论 查看全部评论 (0)
表情: 姓名: 字数