通过案例学调优之--分区表基本管理
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: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.
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
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
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_tables15:43:33 SYS@ test1 >create table part_hash_t2
15:32:21 2 where table_name='PART_T1';
TABLE_NAME PARTITION PARTITION_COUNT STATUS
------------------------------ --------- --------------- --------
PART_T1 RANGE 4 VALID
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 TBS412: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
相关文章推荐
- 通过案例学调优之--AWR基本概念
- 通过案例学调优之--分区表基本概念
- 通过案例学调优之--和 BUFFER CACHE 相关的主要 Latch
- 《Spark商业案例与性能调优实战100课》第9课:商业案例之通过Spark SQL 下两种不同方式实现口碑最佳和最热门电影比较
- 通过案例学调优之--SQL Profile
- 通过案例学调优之--IOSTAT(查看磁盘I/O)
- 通过案例学调优之--和 SHARED POOL 相关的主要 Latch
- Spark商业案例与性能调优实战100课》第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析
- Spark商业案例与性能调优实战100课》第3课:商业案例之通过RDD分析大数据电影点评系各种类型的最喜爱电影TopN及性能优化技巧
- 通过案例学调优之--分区表索引
- 《Spark商业案例与性能调优实战100课》第14课:商业案例之纯粹通过DataSet进行电商交互式分析系统中特定时段购买金额Top10 和访问次数增长Top10
- 通过案例学调优之--10046事件
- 通过案例学调优之--分区表索引
- 通过案例学调优之--和 LOG BUFFER 相关的主要 Latch
- 通过案例学调优之--Oracle Time Model(时间模型)
- Spark商业案例与性能调优实战100课》第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析
- 通过案例学调优之--和 SHARED POOL 相关的主要 Latch
- 通过案例学调优之--Oracle Cluster Table
- 通过案例学调优之--分区表基本管理
- 通过案例学调优之--和 SHARED POOL 相关的主要 Latch