码迷,mamicode.com
首页 > 数据库 > 详细

oracle 优化 —— 分区表

时间:2014-09-18 02:00:33      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   ar   strong   

一、分区表简介

  分区表类型:【范围分区】、【列表分区】 【hash分区】    【这些分区的组合分区】

    范围分区:以某一个范围进行分区。eg:时间段划分。

    列表分区:以某一些几个值进行分区。eg:地区分区,省份进行划分。

    hash分区:以hash算法进行分块。可以有效的消除io的竞争。 更多用在组合分区的子分区中。

    组合分区:11g前仅有两种组合分区  (range- *)      eg: 范围 -列表(月份地区),范围- hash 两种组合

         11g后新增四种。(range-range,list-list,list-hash,list-range) 考虑到兼容性等问题尽量使用 范围开头的组合分区。

  

  使用分区表优点:

    减少访问路径,提升性能外

     更方便的批量操作数据从而维护方便。

    不同的分区映射到磁盘以平衡I/O,改善整个系统性能。

 

二、分区表实战

  范围分区示例

  bubuko.com,布布扣
 1 -- 范围分区示例
 2 drop table range_part_tab purge;
 3 --注意,此分区为范围分区
 4 
 5 --例子1
 6 create table range_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
 7            partition by range (deal_date)
 8            (
 9            partition p_201301 values less than (TO_DATE(2013-02-01, YYYY-MM-DD)),
10            partition p_201302 values less than (TO_DATE(2013-03-01, YYYY-MM-DD)),
11            partition p_201303 values less than (TO_DATE(2013-04-01, YYYY-MM-DD)),
12            partition p_201304 values less than (TO_DATE(2013-05-01, YYYY-MM-DD)),
13            partition p_201305 values less than (TO_DATE(2013-06-01, YYYY-MM-DD)),
14            partition p_201306 values less than (TO_DATE(2013-07-01, YYYY-MM-DD)),
15            partition p_201307 values less than (TO_DATE(2013-08-01, YYYY-MM-DD)),
16            partition p_201308 values less than (TO_DATE(2013-09-01, YYYY-MM-DD)),
17            partition p_201309 values less than (TO_DATE(2013-10-01, YYYY-MM-DD)),
18            partition p_201310 values less than (TO_DATE(2013-11-01, YYYY-MM-DD)),
19            partition p_201311 values less than (TO_DATE(2013-12-01, YYYY-MM-DD)),
20            partition p_201312 values less than (TO_DATE(2014-01-01, YYYY-MM-DD)),
21            partition p_201401 values less than (TO_DATE(2014-02-01, YYYY-MM-DD)),
22            partition p_201402 values less than (TO_DATE(2014-03-01, YYYY-MM-DD)),
23            partition p_max values less than (maxvalue)
24            )
25            ;
26 
27 
28 --以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
29 insert into range_part_tab (id,deal_date,area_code,nbr,contents)
30       select rownum,
31              to_date( to_char(sysdate-365,J)+TRUNC(DBMS_RANDOM.VALUE(0,365)),J),
32              ceil(dbms_random.value(591,599)),
33              ceil(dbms_random.value(18900000001,18999999999)),
34              rpad(*,400,*)
35         from dual
36       connect by rownum <= 100000;
37 commit;
38 
39 
40 
41 --以下是插入2014年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
42 insert into range_part_tab (id,deal_date,area_code,nbr,contents)
43       select rownum,
44              to_date( to_char(sysdate,J)+TRUNC(DBMS_RANDOM.VALUE(0,365)),J),
45              ceil(dbms_random.value(591,599)),
46              ceil(dbms_random.value(18900000001,18999999999)),
47              rpad(*,400,*)
48         from dual
49       connect by rownum <= 100000;
50 commit;
51 
52 
53 ---添加一个全局索引、一个局部索引后,后面会提到分区操作对索引的影响。
54 create index idx_part_id on range_part_tab (id) ;
55 create index idx_part_nbr on range_part_tab (nbr) local;
56 
57 --统计信息系统一般会自动收集,这只是首次建成表后需要操作一下,以方便测试
58 exec dbms_stats.gather_table_stats(ownname => LJB,tabname => RANGE_PART_TAB,estimate_percent => 10,method_opt=> for all indexed columns,cascade=>TRUE) ;  
59 
60 
61 select min(deal_date),max(deal_date) from range_part_tab;
62 
63 --查看每个分区一共保存了多少条数据
64 select count(*) from range_part_tab partition (p_201301);
65 select count(*) from range_part_tab partition (p_201302);
66 select count(*) from range_part_tab partition (p_201303);
67 select count(*) from range_part_tab partition (p_201304);
68 select count(*) from range_part_tab partition (p_201305);
69 select count(*) from range_part_tab partition (p_201306);
70 select count(*) from range_part_tab partition (p_201307);
71 select count(*) from range_part_tab partition (p_201308);
72 select count(*) from range_part_tab partition (p_201309);
73 select count(*) from range_part_tab partition (p_201310);
74 select count(*) from range_part_tab partition (p_201311);
75 select count(*) from range_part_tab partition (p_201312);
76 select count(*) from range_part_tab partition (p_max);
范围分区sql代码实战,脚本可以直接执行

  列表分区示例

  bubuko.com,布布扣
 1 --列表分区示例
 2 drop table list_part_tab purge;
 3 --注意,此分区为列表分区
 4 create table list_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
 5            partition by list (area_code)
 6            (
 7            partition p_591 values  (591),
 8            partition p_592 values  (592),
 9            partition p_593 values  (593),
10            partition p_594 values  (594),
11            partition p_595 values  (595),
12            partition p_596 values  (596),
13            partition p_597 values  (597),
14            partition p_598 values  (598),
15            partition p_599 values  (599),
16            partition p_other values  (DEFAULT)
17            )
18            ;
19            
20 --以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
21 insert into list_part_tab (id,deal_date,area_code,nbr,contents)
22       select rownum,
23              to_date( to_char(sysdate-365,J)+TRUNC(DBMS_RANDOM.VALUE(0,365)),J),
24              ceil(dbms_random.value(590,599)),
25              ceil(dbms_random.value(18900000001,18999999999)),
26              rpad(*,400,*)
27         from dual
28       connect by rownum <= 100000;
29 commit;
30 
31 
32 select count(*) from list_part_tab partition(p_591);
33 select count(*) from list_part_tab partition(p_592);
34 select count(*) from list_part_tab partition(p_593);
35 select count(*) from list_part_tab partition(p_594);
36 select count(*) from list_part_tab partition(p_595);
37 select count(*) from list_part_tab partition(p_596);
38 select count(*) from list_part_tab partition(p_597);
39 select count(*) from list_part_tab partition(p_598);
40 select count(*) from list_part_tab partition(p_599);
41 select count(*) from list_part_tab partition(p_other);
42 
43 
44 create index idx_list_part_id  on list_part_tab (id) ;
45 create index idx_list_part_nbr on list_part_tab (nbr) local;
46 
47 --统计信息系统一般会自动收集,这只是首次建成表后需要操作一下,以方便测试
48 exec dbms_stats.gather_table_stats(ownname => LJB,tabname => LIST_PART_TAB,estimate_percent => 10,method_opt=> for all indexed columns,cascade=>TRUE) ;  
列表分区sql脚本

  hash分区示例

bubuko.com,布布扣
 1 --散列分区示例
 2 drop table hash_part_tab purge;
 3 --注意,此分区HASH分区
 4 create table hash_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
 5             partition by hash (deal_date)
 6             PARTITIONS 12
 7             ;
 8 --以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
 9 insert into hash_part_tab(id,deal_date,area_code,nbr,contents)
10       select rownum,
11              to_date( to_char(sysdate-365,J)+TRUNC(DBMS_RANDOM.VALUE(0,365)),J),
12              ceil(dbms_random.value(590,599)),
13              ceil(dbms_random.value(18900000001,18999999999)),
14              rpad(*,400,*)
15         from dual
16       connect by rownum <= 100000;
17 commit;
18 
19 
20 
21 --以下分区名是通过数据字典user_segments的partition_name查出来的,详见后面说明。
22 ---每个分区存放多少数据
23 select partition_name, 
24        segment_type, 
25        bytes,
26        select count(*) from hash_part_tab partition(||partition_name||);
27   from user_segments
28  where segment_name =HASH_PART_TAB; 
hash分区sql脚本实战

  联合字段分区(两种联合起来进行分区)

bubuko.com,布布扣
  1 -- 范围分区示例
  2 drop table range_part_mult_col_tab purge;
  3 --注意,此分区为联合字段的范围分区
  4 
  5 create table range_part_mult_col_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
  6            partition by range (area_code,deal_date)
  7            (
  8            partition p_591_201301 values less than (591,TO_DATE(2013-02-01, YYYY-MM-DD)),
  9            partition p_591_201302 values less than (591,TO_DATE(2013-03-01, YYYY-MM-DD)),
 10            partition p_591_201303 values less than (591,TO_DATE(2013-04-01, YYYY-MM-DD)),
 11            partition p_591_201304 values less than (591,TO_DATE(2013-05-01, YYYY-MM-DD)),
 12            partition p_591_201305 values less than (591,TO_DATE(2013-06-01, YYYY-MM-DD)),
 13            partition p_591_201306 values less than (591,TO_DATE(2013-07-01, YYYY-MM-DD)),
 14            partition p_591_201307 values less than (591,TO_DATE(2013-08-01, YYYY-MM-DD)),
 15            partition p_591_201308 values less than (591,TO_DATE(2013-09-01, YYYY-MM-DD)),
 16            partition p_591_201309 values less than (591,TO_DATE(2013-10-01, YYYY-MM-DD)),
 17            partition p_591_201310 values less than (591,TO_DATE(2013-11-01, YYYY-MM-DD)),
 18            partition p_591_201311 values less than (591,TO_DATE(2013-12-01, YYYY-MM-DD)),
 19            partition p_591_201312 values less than (591,TO_DATE(2014-01-01, YYYY-MM-DD)),
 20            partition p_591_201401 values less than (591,TO_DATE(2014-02-01, YYYY-MM-DD)),
 21            partition p_591_201402 values less than (591,TO_DATE(2014-03-01, YYYY-MM-DD)),
 22            partition p_591_max values less than (591,maxvalue),
 23            partition p_592_201301 values less than (592,TO_DATE(2013-02-01, YYYY-MM-DD)),
 24            partition p_592_201302 values less than (592,TO_DATE(2013-03-01, YYYY-MM-DD)),
 25            partition p_592_201303 values less than (592,TO_DATE(2013-04-01, YYYY-MM-DD)),
 26            partition p_592_201304 values less than (592,TO_DATE(2013-05-01, YYYY-MM-DD)),
 27            partition p_592_201305 values less than (592,TO_DATE(2013-06-01, YYYY-MM-DD)),
 28            partition p_592_201306 values less than (592,TO_DATE(2013-07-01, YYYY-MM-DD)),
 29            partition p_592_201307 values less than (592,TO_DATE(2013-08-01, YYYY-MM-DD)),
 30            partition p_592_201308 values less than (592,TO_DATE(2013-09-01, YYYY-MM-DD)),
 31            partition p_592_201309 values less than (592,TO_DATE(2013-10-01, YYYY-MM-DD)),
 32            partition p_592_201310 values less than (592,TO_DATE(2013-11-01, YYYY-MM-DD)),
 33            partition p_592_201311 values less than (592,TO_DATE(2013-12-01, YYYY-MM-DD)),
 34            partition p_592_201312 values less than (592,TO_DATE(2014-01-01, YYYY-MM-DD)),
 35            partition p_592_201401 values less than (592,TO_DATE(2014-02-01, YYYY-MM-DD)),
 36            partition p_592_201402 values less than (592,TO_DATE(2014-03-01, YYYY-MM-DD)),
 37            partition p_592_max values less than (592,maxvalue),
 38            partition p_593_201301 values less than (593,TO_DATE(2013-02-01, YYYY-MM-DD)),
 39            partition p_593_201302 values less than (593,TO_DATE(2013-03-01, YYYY-MM-DD)),
 40            partition p_593_201303 values less than (593,TO_DATE(2013-04-01, YYYY-MM-DD)),
 41            partition p_593_201304 values less than (593,TO_DATE(2013-05-01, YYYY-MM-DD)),
 42            partition p_593_201305 values less than (593,TO_DATE(2013-06-01, YYYY-MM-DD)),
 43            partition p_593_201306 values less than (593,TO_DATE(2013-07-01, YYYY-MM-DD)),
 44            partition p_593_201307 values less than (593,TO_DATE(2013-08-01, YYYY-MM-DD)),
 45            partition p_593_201308 values less than (593,TO_DATE(2013-09-01, YYYY-MM-DD)),
 46            partition p_593_201309 values less than (593,TO_DATE(2013-10-01, YYYY-MM-DD)),
 47            partition p_593_201310 values less than (593,TO_DATE(2013-11-01, YYYY-MM-DD)),
 48            partition p_593_201311 values less than (593,TO_DATE(2013-12-01, YYYY-MM-DD)),
 49            partition p_593_201312 values less than (593,TO_DATE(2014-01-01, YYYY-MM-DD)),
 50            partition p_593_201401 values less than (593,TO_DATE(2014-02-01, YYYY-MM-DD)),
 51            partition p_593_201402 values less than (593,TO_DATE(2014-03-01, YYYY-MM-DD)),
 52            partition p_593_max values less than (593,maxvalue)
 53            )
 54            ;
 55 
 56 
 57 
 58 
 59 --以下是插入2013年一整年日期随机数和表示福州,厦门,宁德三地的地区号含义(591到593)的随机数记录,共有10万条,如下:
 60 insert into range_part_mult_col_tab (id,deal_date,area_code,nbr,contents)
 61       select rownum,
 62              to_date( to_char(sysdate-365,J)+TRUNC(DBMS_RANDOM.VALUE(0,365)),J),
 63              ceil(dbms_random.value(591,593)),
 64              ceil(dbms_random.value(18900000001,18999999999)),
 65              rpad(*,400,*)
 66         from dual
 67       connect by rownum <= 100000;
 68 commit;
 69 
 70 
 71 
 72 select count(*) from range_part_mult_col_tab partition (p_591_201301);
 73 select count(*) from range_part_mult_col_tab partition (p_591_201302);
 74 select count(*) from range_part_mult_col_tab partition (p_591_201303);
 75 select count(*) from range_part_mult_col_tab partition (p_591_201304);
 76 select count(*) from range_part_mult_col_tab partition (p_591_201305);
 77 select count(*) from range_part_mult_col_tab partition (p_591_201306);
 78 select count(*) from range_part_mult_col_tab partition (p_591_201307);
 79 select count(*) from range_part_mult_col_tab partition (p_591_201308);
 80 select count(*) from range_part_mult_col_tab partition (p_591_201309);
 81 select count(*) from range_part_mult_col_tab partition (p_591_201310);
 82 select count(*) from range_part_mult_col_tab partition (p_591_201311);
 83 select count(*) from range_part_mult_col_tab partition (p_591_201312);
 84 select count(*) from range_part_mult_col_tab partition (p_591_max);
 85 select count(*) from range_part_mult_col_tab partition (p_592_201301);
 86 select count(*) from range_part_mult_col_tab partition (p_592_201302);
 87 select count(*) from range_part_mult_col_tab partition (p_592_201303);
 88 select count(*) from range_part_mult_col_tab partition (p_592_201304);
 89 select count(*) from range_part_mult_col_tab partition (p_592_201305);
 90 select count(*) from range_part_mult_col_tab partition (p_592_201306);
 91 select count(*) from range_part_mult_col_tab partition (p_592_201307);
 92 select count(*) from range_part_mult_col_tab partition (p_592_201308);
 93 select count(*) from range_part_mult_col_tab partition (p_592_201309);
 94 select count(*) from range_part_mult_col_tab partition (p_592_201310);
 95 select count(*) from range_part_mult_col_tab partition (p_592_201311);
 96 select count(*) from range_part_mult_col_tab partition (p_592_201312);
 97 select count(*) from range_part_mult_col_tab partition (p_592_max);
 98 select count(*) from range_part_mult_col_tab partition (p_593_201301);
 99 select count(*) from range_part_mult_col_tab partition (p_593_201302);
100 select count(*) from range_part_mult_col_tab partition (p_593_201303);
101 select count(*) from range_part_mult_col_tab partition (p_593_201304);
102 select count(*) from range_part_mult_col_tab partition (p_593_201305);
103 select count(*) from range_part_mult_col_tab partition (p_593_201306);
104 select count(*) from range_part_mult_col_tab partition (p_593_201307);
105 select count(*) from range_part_mult_col_tab partition (p_593_201308);
106 select count(*) from range_part_mult_col_tab partition (p_593_201309);
107 select count(*) from range_part_mult_col_tab partition (p_593_201310);
108 select count(*) from range_part_mult_col_tab partition (p_593_201311);
109 select count(*) from range_part_mult_col_tab partition (p_593_201312);
110 select count(*) from range_part_mult_col_tab partition (p_593_max);
111 
112 
113 
114 
115 create index idx_part_mul_id  on range_part_mult_col_tab (id) ;
116 create index idx_part_mul_nbr on range_part_mult_col_tab (nbr) local;
联合分区脚本代码

  组合分区

bubuko.com,布布扣
 1 --组合分区示例
 2 drop table range_list_part_tab purge;
 3 --注意,此分区为范围分区
 4 create table range_list_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
 5            partition by range (deal_date)
 6              subpartition by list (area_code)
 7              subpartition TEMPLATE
 8              (subpartition p_591 values  (591),
 9               subpartition p_592 values  (592),
10               subpartition p_593 values  (593),
11               subpartition p_594 values  (594),
12               subpartition p_595 values  (595),
13               subpartition p_596 values  (596),
14               subpartition p_597 values  (597),
15               subpartition p_598 values  (598),
16               subpartition p_599 values  (599),
17               subpartition p_other values (DEFAULT))
18            ( partition p_201301 values less than (TO_DATE(2013-02-01, YYYY-MM-DD)),
19              partition p_201302 values less than (TO_DATE(2013-03-01, YYYY-MM-DD)),
20              partition p_201303 values less than (TO_DATE(2013-04-01, YYYY-MM-DD)),
21              partition p_201304 values less than (TO_DATE(2013-05-01, YYYY-MM-DD)),
22              partition p_201305 values less than (TO_DATE(2013-06-01, YYYY-MM-DD)),
23              partition p_201306 values less than (TO_DATE(2013-07-01, YYYY-MM-DD)),
24              partition p_201307 values less than (TO_DATE(2013-08-01, YYYY-MM-DD)),
25              partition p_201308 values less than (TO_DATE(2013-09-01, YYYY-MM-DD)),
26              partition p_201309 values less than (TO_DATE(2013-10-01, YYYY-MM-DD)),
27              partition p_201310 values less than (TO_DATE(2013-11-01, YYYY-MM-DD)),
28              partition p_201311 values less than (TO_DATE(2013-12-01, YYYY-MM-DD)),
29              partition p_201312 values less than (TO_DATE(2014-01-01, YYYY-MM-DD)),
30              partition p_201401 values less than (TO_DATE(2014-02-01, YYYY-MM-DD)),
31              partition p_201402 values less than (TO_DATE(2014-03-01, YYYY-MM-DD)),
32              partition p_max values less than (maxvalue))
33            ;
34 
35 
36 
37 --以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
38 insert into range_list_part_tab(id,deal_date,area_code,nbr,contents)
39       select rownum,
40              to_date( to_char(sysdate-365,J)+TRUNC(DBMS_RANDOM.VALUE(0,365)),J),
41              ceil(dbms_random.value(590,599)),
42              ceil(dbms_random.value(18900000001,18999999999)),
43              rpad(*,400,*)
44         from dual
45       connect by rownum <= 100000;
46 commit;
47 
48 
49 select count(*) from range_list_part_tab partition (p_591);
50 select count(*) from range_list_part_tab partition (p_201302);
51 select count(*) from range_list_part_tab partition (p_201303);
52 select count(*) from range_list_part_tab partition (p_201304);
53 select count(*) from range_list_part_tab partition (p_201305);
54 select count(*) from range_list_part_tab partition (p_201306);
55 select count(*) from range_list_part_tab partition (p_201307);
56 select count(*) from range_list_part_tab partition (p_201308);
57 select count(*) from range_list_part_tab partition (p_201309);
58 select count(*) from range_list_part_tab partition (p_201310);
59 select count(*) from range_list_part_tab partition (p_201311);
60 select count(*) from range_list_part_tab partition (p_201312);
61 select count(*) from range_list_part_tab partition (p_max);
62 
63 --注意,模板的形式,子分区名是被自动命名了,系统自动组合在一起,如P_201301_P_591
64 select count(*) from range_list_part_tab  subpartition(P_201301_P_591);
65 
66 create index idx_ran_list_part_id  on range_list_part_tab (id) ;
67 create index idx_ran_list_part_nbr on range_list_part_tab (nbr) local;
组合分区sql脚本示例

 

三、分区表相关信息的查询脚本

  

  该表是否是分区表,分区表的分区类型是什么,是否有子分区,分区总数有多少

SELECT partitioning_type,  subpartitioning_type,  partition_count  FROM  user_part_tables WHERE  table_name = ‘TABLE‘;

  该分区表在哪一列上建分区,有无多列联合建分区

SELECT
    column_name,
    object_type,
    column_position
FROM
    user_part_key_columns
WHERE
    NAME = TABLE;

  该分区表有多大

select sum(bytes) / 1024 / 1024
from user_segments
where segment_name =TABLE;

   该分区表各分区分别有多大,各个分区名是什么

select partition_name, 
       segment_type, 
       bytes
  from user_segments
 where segment_name =TABLE;

  该分区表的统计信息收集情况

select table_name,
       partition_name,
       last_analyzed,
       partition_position,      
       num_rows
  from user_tab_statistics t
 where table_name =‘TABLE;

  分区表索引相关查该分区表有无索引,分别什么类型,全局索引是否失效,此外还可看统计信息收集情况。--(其中status值为N/A 表示分区索引,分区索引是否失效是在user_ind_partitions中查看)

bubuko.com,布布扣
---RANGE_PART_TAB  第一个范围分区测试脚本中直接执行下面脚本即可有相同的结果

select table_name, 
       index_name, 
       last_analyzed,
       blevel,
       num_rows,
       leaf_blocks,
       distinct_keys,
       status
  from user_indexes
 where table_name =RANGE_PART_TAB;
 
 
TABLE_NAME                     INDEX_NAME                   LAST_ANALYZED  BLEVEL  NUM_ROWS LEAF_BLOCKS DISTINCT_KEYS STATUS
------------------------------ ---------------------------- -------------- ------ --------- ----------- ------------- --------
RANGE_PART_TAB                 IDX_PART_NBR                 01-12月-13          1    200000         536        199774 N/A
RANGE_PART_TAB                 IDX_PART_ID                  01-12月-13          1    200000         555        100000 VALID

--07 该分区表在哪些列上建了索引
select index_name, 
       column_name, 
       column_position
  from user_ind_columns
 where table_name = RANGE_PART_TAB;
 
INDEX_NAME                   COLUMN_NAME          COLUMN_POSITION
---------------------------- -------------------- ---------------
IDX_PART_ID                  ID                                 1
IDX_PART_NBR                 NBR                                1


--08 该分区表上的各索引分别有多大。   
select segment_name,segment_type,sum(bytes)/1024/1024
  from user_segments
 where segment_name in
       (select index_name
          from user_indexes
         where table_name =RANGE_PART_TAB)
group by segment_name,segment_type ;  

SEGMENT_NAME          SEGMENT_TYPE         SUM(BYTES)/1024/1024
------------------------------------------ --------------------
IDX_PART_ID           INDEX                           5
IDX_PART_NBR          INDEX PARTITION            5.6875

--09 该分区表的索引段的分配情况
select segment_name
       partition_name, 
       segment_type, 
       bytes
  from user_segments
 where segment_name in
       (select index_name
          from user_indexes
         where table_name =RANGE_PART_TAB);


PARTITION_NAME               SEGMENT_TYPE              BYTES
---------------------------- -------------------- ----------
IDX_PART_ID                  INDEX                   5242880
IDX_PART_NBR                 INDEX PARTITION          458752
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION          262144
IDX_PART_NBR                 INDEX PARTITION         2097152

已选择16行。
         
         
--10 分区索引相关信息及统计信息、是否失效查看。
select t2.table_name,
       t1.index_name,
       t1.partition_name,
       t1.last_analyzed,
       t1.blevel,
       t1.num_rows,
       t1.leaf_blocks,
       t1.status       
  from user_ind_partitions t1, user_indexes t2
where t1.index_name = t2.index_name
   and t2.table_name=RANGE_PART_TAB;      
TABLE_NAME        INDEX_NAME     PARTITION_NAME LAST_ANALYZED  BLEVEL  NUM_ROWS LEAF_BLOCKS STATUS
-------------------------------------------------------------- ------ --------- ----------- -------
RANGE_PART_TAB    IDX_PART_NBR   P_201301       01-12月-13       1        16883          45 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201302       01-12月-13       1         7876          21 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201303       01-12月-13       1         8448          23 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201304       01-12月-13       1         8295          22 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201305       01-12月-13       1         8388          23 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201306       01-12月-13       1         8234          22 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201307       01-12月-13       1         8540          23 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201308       01-12月-13       1         8312          22 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201309       01-12月-13       1         8350          23 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201310       01-12月-13       1         8496          23 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201311       01-12月-13       1         8178          22 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201312       01-12月-13       1         8425          23 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201401       01-12月-13       1         8477          23 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_201402       01-12月-13       1         7628          21 USABLE
RANGE_PART_TAB    IDX_PART_NBR   P_MAX          01-12月-13       1        75470         200 USABLE      
   
分区表索引相关脚本示例

 

oracle 优化 —— 分区表

标签:style   blog   http   color   io   os   使用   ar   strong   

原文地址:http://www.cnblogs.com/javaMan/p/3978412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!