您的位置:首页 > 其它

通过案例学调优之--分区表基本管理

2015-03-31 12:07 218 查看
通过案例学调优之--分区表基本管理1、建立tablespace并将数据文件存储到不同表空间(分散I/O)

15:15:14 SYS@ test1 >select file_id,file_name,tablespace_name from dba_data_files order by 3;
15:31:38 SYS@ test1 >select table_name,PARTITIONING_TYPE,PARTITION_COUNT,STATUS from dba_part_tables
15:32:21   2   where table_name='PART_T1';
TABLE_NAME                     PARTITION PARTITION_COUNT STATUS
------------------------------ --------- --------------- --------
PART_T1                        RANGE                   4 VALID
15:43:33 SYS@ test1 >create table part_hash_t2
15:43:45   2       PARTITION BY HASH (OBJECT_TYPE)
15:43:45   3       partitions 4 store in (tbs1,tbs2,tbs3,tbs4)
15:43:45   4       as 
15:43:45   5       select owner,object_name,object_id,object_type,TIMESTAMP,status from dba_objects;
Table created.
15:43:46 SYS@ test1 >select segment_name,segment_type,tablespace_name,bytes,extents from dba_segments
15:44:39   2  where tablespace_name in ('TBS1','TBS2','TBS3','TBS4');
SEGMENT_NAME         SEGMENT_TYPE       TABLESPACE_NAME                     BYTES    EXTENTS
-------------------- ------------------ ------------------------------ ---------- ----------
PART_T1              TABLE PARTITION    TBS1                               327680          5
PART_T1              TABLE PARTITION    TBS2                               393216          6
PART_T1              TABLE PARTITION    TBS3                               393216          6
PART_T1              TABLE PARTITION    TBS4                               131072          2
PART_HASH_T2         TABLE PARTITION    TBS1                               393216          6
PART_HASH_T2         TABLE PARTITION    TBS2                               458752          7
PART_HASH_T2         TABLE PARTITION    TBS3                               131072          2
PART_HASH_T2         TABLE PARTITION    TBS4                               262144          4
[code]sql> select segment_name,segment_type,PARTITION_NAME,tablespace_name,bytes,extents from dba_segments
  2* where tablespace_name in ('TBS1','TBS2','TBS3','TBS4')
SEGMENT_NAME         SEGMENT_TYPE       PARTITION_NAME                 TABLESPACE_NAME           BYTES    EXTENTS
-------------------- ------------------ ------------------------------ -------------------- ---------- ----------
PART_T1              TABLE PARTITION    P1                             TBS1                     327680     5
PART_T1              TABLE PARTITION    P2                             TBS2                     393216     6
PART_T1              TABLE PARTITION    P3                             TBS3                     393216     6
PART_T1              TABLE PARTITION    P4                             TBS4                     131072     2
PART_HASH_T2         TABLE PARTITION    SYS_P41                        TBS1                     393216     6
PART_HASH_T2         TABLE PARTITION    SYS_P42                        TBS2                     458752     7
PART_HASH_T2         TABLE PARTITION    SYS_P43                        TBS3                     131072     2
PART_HASH_T2         TABLE PARTITION    SYS_P44                        TBS4                     262144     416:07:54 SYS@ test1 >select segment_name,segment_type,PARTITION_NAME,tablespace_name,bytes,extents from dba_segments
16:08:54   2  where tablespace_name in ('TBS1','TBS2','TBS3','TBS4');
SEGMENT_NAME         SEGMENT_TYPE       PARTITION_NAME                 TABLESPACE_NAME           BYTES    EXTENTS
-------------------- ------------------ ------------------------------ -------------------- ---------- ----------
PART_T1              TABLE PARTITION    P1                             TBS1                     327680     5
PART_T1              TABLE PARTITION    P2                             TBS2                     393216     6
PART_T1              TABLE PARTITION    P3                             TBS3                     393216     6
PART_T1              TABLE PARTITION    P4                             TBS4                     131072     2
PART_HASH_T2         TABLE PARTITION    SYS_P41                        TBS1                     393216     6
PART_HASH_T2         TABLE PARTITION    SYS_P42                        TBS2                     458752     7
PART_HASH_T2         TABLE PARTITION    SYS_P43                        TBS3                     131072     2
PART_HASH_T2         TABLE PARTITION    SYS_P44                        TBS4                     262144     4
PART_ls_T3           TABLE PARTITION    LS_P1                          TBS1                     720896         11
PART_ls_T3           TABLE PARTITION    LS_P2                          TBS2                      65536     1[b]3、管理分区

16:33:13 SYS@ test1 >select table_name,PARTITION_NAME ,PARTITION_POSITION,TABLESPACE_NAME from dba_tab_partitions
16:34:03   2   where table_name='PART_T1';
TABLE_NAME                     PARTITION_NAME                 PARTITION_POSITION TABLESPACE_NAME
------------------------------ ------------------------------ ------------------ --------------------
PART_T1                        P1                                              1 TBS1
PART_T1                        P2                                              2 TBS2
PART_T1                        P31                                             3 TBS1
PART_T1                        P32                                             4 TBS2
PART_T1                        P4                                              5 TBS412:40:45 SYS@ test1>alter table part_t1 move partition p3 tablespace system;
Table altered.

12:44:02 SYS@ test1>select table_name,PARTITION_NAME ,PARTITION_POSITION,TABLESPACE_NAME from dba_tab_partitions
12:44:09   2  where table_name='PART_T1';

TABLE_NAME                     PARTITION_NAME                 PARTITION_POSITION TABLESPACE_NAME
------------------------------ ------------------------------ ------------------ ------------------------------
PART_T1                        P1                                              1 TBS1
PART_T1                        P2                                              2 TBS2
PART_T1                        P3                                              3 SYSTEM
PART_T1                        P4                                              4 TBS4
PART_T1                        P_MAX                                           5 TBS4
16:40:36 SYS@ test1 >select count(*) from part_t1 partition(p3);
  COUNT(*)
----------
      1874
Elapsed: 00:00:00.01
12:44:14 SYS@ test1>alter table part_t1 move partition p3 tablespace tbs3;
Table altered.
Elapsed: 00:00:00.13
12:44:50 SYS@ test1>select table_name,PARTITION_NAME ,PARTITION_POSITION,TABLESPACE_NAME from dba_tab_partitions where table_name='PART_T1';
TABLE_NAME                     PARTITION_NAME                 PARTITION_POSITION TABLESPACE_NAME
------------------------------ ------------------------------ ------------------ ------------------------------
PART_T1                        P1                                              1 TBS1
PART_T1                        P2                                              2 TBS2
PART_T1                        P3                                              3 TBS3
PART_T1                        P4                                              4 TBS4
PART_T1                        P_MAX                                           5 TBS4
12:50:23 SYS@ test1>alter table part_t1 merge partitions p3a,p3b into partition p3 tablespace tbs3;
Table altered.
Elapsed: 00:00:00.20
12:51:03 SYS@ test1>select table_name,PARTITION_NAME ,PARTITION_POSITION,TABLESPACE_NAME from dba_tab_partitions where table_name='PART_T1';
TABLE_NAME                     PARTITION_NAME                 PARTITION_POSITION TABLESPACE_NAME
------------------------------ ------------------------------ ------------------ ------------------------------
PART_T1                        P1                                              1 TBS1
PART_T1                        P2                                              2 TBS2
PART_T1                        P3                                              3 TBS3
PART_T1                        P4                                              4 TBS4
PART_T1                        P_MAX                                           5 TBS412:33:32 SYS@ test1>alter table part_t1 add partition p5 values less than (maxvalue) tablespace tbs4;
alter table part_t1 add partition p5 values less than (maxvalue) tablespace tbs4
                                  *
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition
 如果设定了max values 参数,增加新分区,应用split 拆分
12:38:13 SYS@ test1>alter table part_t1 split partition p4 at(20000) into (partition p4 tablespace tbs4,partition p_max tablespace tbs4);
Table altered.
12:40:24 SYS@ test1>select table_name,PARTITION_NAME ,PARTITION_POSITION,TABLESPACE_NAME from dba_tab_partitions
12:40:35   2  where table_name='PART_T1';
TABLE_NAME                     PARTITION_NAME                 PARTITION_POSITION TABLESPACE_NAME
------------------------------ ------------------------------ ------------------ ------------------------------
PART_T1                        P1                                              1 TBS1
PART_T1                        P2                                              2 TBS2
PART_T1                        P3                                              3 TBS3
PART_T1                        P4                                              4 TBS4
PART_T1                        P_MAX                                           5 TBS4

16:47:03 SYS@ test1 >select count(*) from part_t1 partition(p4);
  COUNT(*)
----------
         0
         
16:47:58 SYS@ test1 >select count(*) from part_t1 partition(p5);
  COUNT(*)
----------
         0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐