一、分区表简介

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

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

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

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

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

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

  

  使用分区表优点:

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

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

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

    相比索引来讲:索引的维护开销是相当大的,它要保证他的有序性,他的数据结构如果乱的话、是需要重组的,而分区表化整为零,大大的减小了扫描范围,同样可以起到很高的效率。

二、分区表实战

  范围分区示例

  

 -- 范围分区示例
drop table range_part_tab purge;
--注意,此分区为范围分区 --例子1
create table range_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2())
partition by range (deal_date)
(
partition p_201301 values less than (TO_DATE('2013-02-01', 'YYYY-MM-DD')),
partition p_201302 values less than (TO_DATE('2013-03-01', 'YYYY-MM-DD')),
partition p_201303 values less than (TO_DATE('2013-04-01', 'YYYY-MM-DD')),
partition p_201304 values less than (TO_DATE('2013-05-01', 'YYYY-MM-DD')),
partition p_201305 values less than (TO_DATE('2013-06-01', 'YYYY-MM-DD')),
partition p_201306 values less than (TO_DATE('2013-07-01', 'YYYY-MM-DD')),
partition p_201307 values less than (TO_DATE('2013-08-01', 'YYYY-MM-DD')),
partition p_201308 values less than (TO_DATE('2013-09-01', 'YYYY-MM-DD')),
partition p_201309 values less than (TO_DATE('2013-10-01', 'YYYY-MM-DD')),
partition p_201310 values less than (TO_DATE('2013-11-01', 'YYYY-MM-DD')),
partition p_201311 values less than (TO_DATE('2013-12-01', 'YYYY-MM-DD')),
partition p_201312 values less than (TO_DATE('2014-01-01', 'YYYY-MM-DD')),
partition p_201401 values less than (TO_DATE('2014-02-01', 'YYYY-MM-DD')),
partition p_201402 values less than (TO_DATE('2014-03-01', 'YYYY-MM-DD')),
partition p_max values less than (maxvalue)
)
; --以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
insert into range_part_tab (id,deal_date,area_code,nbr,contents)
select rownum,
to_date( to_char(sysdate-,'J')+TRUNC(DBMS_RANDOM.VALUE(,)),'J'),
ceil(dbms_random.value(,)),
ceil(dbms_random.value(,)),
rpad('*',,'*')
from dual
connect by rownum <= ;
commit; --以下是插入2014年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
insert into range_part_tab (id,deal_date,area_code,nbr,contents)
select rownum,
to_date( to_char(sysdate,'J')+TRUNC(DBMS_RANDOM.VALUE(,)),'J'),
ceil(dbms_random.value(,)),
ceil(dbms_random.value(,)),
rpad('*',,'*')
from dual
connect by rownum <= ;
commit; ---添加一个全局索引、一个局部索引后,后面会提到分区操作对索引的影响。
create index idx_part_id on range_part_tab (id) ;
create index idx_part_nbr on range_part_tab (nbr) local; --统计信息系统一般会自动收集,这只是首次建成表后需要操作一下,以方便测试
exec dbms_stats.gather_table_stats(ownname => 'LJB',tabname => 'RANGE_PART_TAB',estimate_percent => ,method_opt=> 'for all indexed columns',cascade=>TRUE) ; select min(deal_date),max(deal_date) from range_part_tab; --查看每个分区一共保存了多少条数据
select count(*) from range_part_tab partition (p_201301);
select count(*) from range_part_tab partition (p_201302);
select count(*) from range_part_tab partition (p_201303);
select count(*) from range_part_tab partition (p_201304);
select count(*) from range_part_tab partition (p_201305);
select count(*) from range_part_tab partition (p_201306);
select count(*) from range_part_tab partition (p_201307);
select count(*) from range_part_tab partition (p_201308);
select count(*) from range_part_tab partition (p_201309);
select count(*) from range_part_tab partition (p_201310);
select count(*) from range_part_tab partition (p_201311);
select count(*) from range_part_tab partition (p_201312);
select count(*) from range_part_tab partition (p_max);

范围分区sql代码实战,脚本可以直接执行

  列表分区示例

  

 --列表分区示例
drop table list_part_tab purge;
--注意,此分区为列表分区
create table list_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
partition by list (area_code)
(
partition p_591 values (591),
partition p_592 values (592),
partition p_593 values (593),
partition p_594 values (594),
partition p_595 values (595),
partition p_596 values (596),
partition p_597 values (597),
partition p_598 values (598),
partition p_599 values (599),
partition p_other values (DEFAULT)
)
; --以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
insert into list_part_tab (id,deal_date,area_code,nbr,contents)
select rownum,
to_date( to_char(sysdate-365,'J')+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J'),
ceil(dbms_random.value(590,599)),
ceil(dbms_random.value(18900000001,18999999999)),
rpad('*',400,'*')
from dual
connect by rownum <= 100000;
commit; select count(*) from list_part_tab partition(p_591);
select count(*) from list_part_tab partition(p_592);
select count(*) from list_part_tab partition(p_593);
select count(*) from list_part_tab partition(p_594);
select count(*) from list_part_tab partition(p_595);
select count(*) from list_part_tab partition(p_596);
select count(*) from list_part_tab partition(p_597);
select count(*) from list_part_tab partition(p_598);
select count(*) from list_part_tab partition(p_599);
select count(*) from list_part_tab partition(p_other); create index idx_list_part_id on list_part_tab (id) ;
create index idx_list_part_nbr on list_part_tab (nbr) local; --统计信息系统一般会自动收集,这只是首次建成表后需要操作一下,以方便测试
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分区示例

 --散列分区示例
drop table hash_part_tab purge;
--注意,此分区HASH分区
create table hash_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
partition by hash (deal_date)
PARTITIONS 12
;
--以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
insert into hash_part_tab(id,deal_date,area_code,nbr,contents)
select rownum,
to_date( to_char(sysdate-365,'J')+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J'),
ceil(dbms_random.value(590,599)),
ceil(dbms_random.value(18900000001,18999999999)),
rpad('*',400,'*')
from dual
connect by rownum <= 100000;
commit; --以下分区名是通过数据字典user_segments的partition_name查出来的,详见后面说明。
---每个分区存放多少数据
select partition_name,
segment_type,
bytes,
'select count(*) from hash_part_tab partition('||partition_name||');'
from user_segments
where segment_name ='HASH_PART_TAB';

hash分区sql脚本实战

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

 -- 范围分区示例
drop table range_part_mult_col_tab purge;
--注意,此分区为联合字段的范围分区 create table range_part_mult_col_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
partition by range (area_code,deal_date)
(
partition p_591_201301 values less than (591,TO_DATE('2013-02-01', 'YYYY-MM-DD')),
partition p_591_201302 values less than (591,TO_DATE('2013-03-01', 'YYYY-MM-DD')),
partition p_591_201303 values less than (591,TO_DATE('2013-04-01', 'YYYY-MM-DD')),
partition p_591_201304 values less than (591,TO_DATE('2013-05-01', 'YYYY-MM-DD')),
partition p_591_201305 values less than (591,TO_DATE('2013-06-01', 'YYYY-MM-DD')),
partition p_591_201306 values less than (591,TO_DATE('2013-07-01', 'YYYY-MM-DD')),
partition p_591_201307 values less than (591,TO_DATE('2013-08-01', 'YYYY-MM-DD')),
partition p_591_201308 values less than (591,TO_DATE('2013-09-01', 'YYYY-MM-DD')),
partition p_591_201309 values less than (591,TO_DATE('2013-10-01', 'YYYY-MM-DD')),
partition p_591_201310 values less than (591,TO_DATE('2013-11-01', 'YYYY-MM-DD')),
partition p_591_201311 values less than (591,TO_DATE('2013-12-01', 'YYYY-MM-DD')),
partition p_591_201312 values less than (591,TO_DATE('2014-01-01', 'YYYY-MM-DD')),
partition p_591_201401 values less than (591,TO_DATE('2014-02-01', 'YYYY-MM-DD')),
partition p_591_201402 values less than (591,TO_DATE('2014-03-01', 'YYYY-MM-DD')),
partition p_591_max values less than (591,maxvalue),
partition p_592_201301 values less than (592,TO_DATE('2013-02-01', 'YYYY-MM-DD')),
partition p_592_201302 values less than (592,TO_DATE('2013-03-01', 'YYYY-MM-DD')),
partition p_592_201303 values less than (592,TO_DATE('2013-04-01', 'YYYY-MM-DD')),
partition p_592_201304 values less than (592,TO_DATE('2013-05-01', 'YYYY-MM-DD')),
partition p_592_201305 values less than (592,TO_DATE('2013-06-01', 'YYYY-MM-DD')),
partition p_592_201306 values less than (592,TO_DATE('2013-07-01', 'YYYY-MM-DD')),
partition p_592_201307 values less than (592,TO_DATE('2013-08-01', 'YYYY-MM-DD')),
partition p_592_201308 values less than (592,TO_DATE('2013-09-01', 'YYYY-MM-DD')),
partition p_592_201309 values less than (592,TO_DATE('2013-10-01', 'YYYY-MM-DD')),
partition p_592_201310 values less than (592,TO_DATE('2013-11-01', 'YYYY-MM-DD')),
partition p_592_201311 values less than (592,TO_DATE('2013-12-01', 'YYYY-MM-DD')),
partition p_592_201312 values less than (592,TO_DATE('2014-01-01', 'YYYY-MM-DD')),
partition p_592_201401 values less than (592,TO_DATE('2014-02-01', 'YYYY-MM-DD')),
partition p_592_201402 values less than (592,TO_DATE('2014-03-01', 'YYYY-MM-DD')),
partition p_592_max values less than (592,maxvalue),
partition p_593_201301 values less than (593,TO_DATE('2013-02-01', 'YYYY-MM-DD')),
partition p_593_201302 values less than (593,TO_DATE('2013-03-01', 'YYYY-MM-DD')),
partition p_593_201303 values less than (593,TO_DATE('2013-04-01', 'YYYY-MM-DD')),
partition p_593_201304 values less than (593,TO_DATE('2013-05-01', 'YYYY-MM-DD')),
partition p_593_201305 values less than (593,TO_DATE('2013-06-01', 'YYYY-MM-DD')),
partition p_593_201306 values less than (593,TO_DATE('2013-07-01', 'YYYY-MM-DD')),
partition p_593_201307 values less than (593,TO_DATE('2013-08-01', 'YYYY-MM-DD')),
partition p_593_201308 values less than (593,TO_DATE('2013-09-01', 'YYYY-MM-DD')),
partition p_593_201309 values less than (593,TO_DATE('2013-10-01', 'YYYY-MM-DD')),
partition p_593_201310 values less than (593,TO_DATE('2013-11-01', 'YYYY-MM-DD')),
partition p_593_201311 values less than (593,TO_DATE('2013-12-01', 'YYYY-MM-DD')),
partition p_593_201312 values less than (593,TO_DATE('2014-01-01', 'YYYY-MM-DD')),
partition p_593_201401 values less than (593,TO_DATE('2014-02-01', 'YYYY-MM-DD')),
partition p_593_201402 values less than (593,TO_DATE('2014-03-01', 'YYYY-MM-DD')),
partition p_593_max values less than (593,maxvalue)
)
; --以下是插入2013年一整年日期随机数和表示福州,厦门,宁德三地的地区号含义(591到593)的随机数记录,共有10万条,如下:
insert into range_part_mult_col_tab (id,deal_date,area_code,nbr,contents)
select rownum,
to_date( to_char(sysdate-365,'J')+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J'),
ceil(dbms_random.value(591,593)),
ceil(dbms_random.value(18900000001,18999999999)),
rpad('*',400,'*')
from dual
connect by rownum <= 100000;
commit; select count(*) from range_part_mult_col_tab partition (p_591_201301);
select count(*) from range_part_mult_col_tab partition (p_591_201302);
select count(*) from range_part_mult_col_tab partition (p_591_201303);
select count(*) from range_part_mult_col_tab partition (p_591_201304);
select count(*) from range_part_mult_col_tab partition (p_591_201305);
select count(*) from range_part_mult_col_tab partition (p_591_201306);
select count(*) from range_part_mult_col_tab partition (p_591_201307);
select count(*) from range_part_mult_col_tab partition (p_591_201308);
select count(*) from range_part_mult_col_tab partition (p_591_201309);
select count(*) from range_part_mult_col_tab partition (p_591_201310);
select count(*) from range_part_mult_col_tab partition (p_591_201311);
select count(*) from range_part_mult_col_tab partition (p_591_201312);
select count(*) from range_part_mult_col_tab partition (p_591_max);
select count(*) from range_part_mult_col_tab partition (p_592_201301);
select count(*) from range_part_mult_col_tab partition (p_592_201302);
select count(*) from range_part_mult_col_tab partition (p_592_201303);
select count(*) from range_part_mult_col_tab partition (p_592_201304);
select count(*) from range_part_mult_col_tab partition (p_592_201305);
select count(*) from range_part_mult_col_tab partition (p_592_201306);
select count(*) from range_part_mult_col_tab partition (p_592_201307);
select count(*) from range_part_mult_col_tab partition (p_592_201308);
select count(*) from range_part_mult_col_tab partition (p_592_201309);
select count(*) from range_part_mult_col_tab partition (p_592_201310);
select count(*) from range_part_mult_col_tab partition (p_592_201311);
select count(*) from range_part_mult_col_tab partition (p_592_201312);
select count(*) from range_part_mult_col_tab partition (p_592_max);
select count(*) from range_part_mult_col_tab partition (p_593_201301);
select count(*) from range_part_mult_col_tab partition (p_593_201302);
select count(*) from range_part_mult_col_tab partition (p_593_201303);
select count(*) from range_part_mult_col_tab partition (p_593_201304);
select count(*) from range_part_mult_col_tab partition (p_593_201305);
select count(*) from range_part_mult_col_tab partition (p_593_201306);
select count(*) from range_part_mult_col_tab partition (p_593_201307);
select count(*) from range_part_mult_col_tab partition (p_593_201308);
select count(*) from range_part_mult_col_tab partition (p_593_201309);
select count(*) from range_part_mult_col_tab partition (p_593_201310);
select count(*) from range_part_mult_col_tab partition (p_593_201311);
select count(*) from range_part_mult_col_tab partition (p_593_201312);
select count(*) from range_part_mult_col_tab partition (p_593_max); create index idx_part_mul_id on range_part_mult_col_tab (id) ;
create index idx_part_mul_nbr on range_part_mult_col_tab (nbr) local;

联合分区脚本代码

  组合分区

 --组合分区示例
drop table range_list_part_tab purge;
--注意,此分区为范围分区
create table range_list_part_tab (id number,deal_date date,area_code number,nbr number,contents varchar2(4000))
partition by range (deal_date)
subpartition by list (area_code)
subpartition TEMPLATE
(subpartition p_591 values (591),
subpartition p_592 values (592),
subpartition p_593 values (593),
subpartition p_594 values (594),
subpartition p_595 values (595),
subpartition p_596 values (596),
subpartition p_597 values (597),
subpartition p_598 values (598),
subpartition p_599 values (599),
subpartition p_other values (DEFAULT))
( partition p_201301 values less than (TO_DATE('2013-02-01', 'YYYY-MM-DD')),
partition p_201302 values less than (TO_DATE('2013-03-01', 'YYYY-MM-DD')),
partition p_201303 values less than (TO_DATE('2013-04-01', 'YYYY-MM-DD')),
partition p_201304 values less than (TO_DATE('2013-05-01', 'YYYY-MM-DD')),
partition p_201305 values less than (TO_DATE('2013-06-01', 'YYYY-MM-DD')),
partition p_201306 values less than (TO_DATE('2013-07-01', 'YYYY-MM-DD')),
partition p_201307 values less than (TO_DATE('2013-08-01', 'YYYY-MM-DD')),
partition p_201308 values less than (TO_DATE('2013-09-01', 'YYYY-MM-DD')),
partition p_201309 values less than (TO_DATE('2013-10-01', 'YYYY-MM-DD')),
partition p_201310 values less than (TO_DATE('2013-11-01', 'YYYY-MM-DD')),
partition p_201311 values less than (TO_DATE('2013-12-01', 'YYYY-MM-DD')),
partition p_201312 values less than (TO_DATE('2014-01-01', 'YYYY-MM-DD')),
partition p_201401 values less than (TO_DATE('2014-02-01', 'YYYY-MM-DD')),
partition p_201402 values less than (TO_DATE('2014-03-01', 'YYYY-MM-DD')),
partition p_max values less than (maxvalue))
; --以下是插入2013年一整年日期随机数和表示福建地区号含义(591到599)的随机数记录,共有10万条,如下:
insert into range_list_part_tab(id,deal_date,area_code,nbr,contents)
select rownum,
to_date( to_char(sysdate-365,'J')+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J'),
ceil(dbms_random.value(590,599)),
ceil(dbms_random.value(18900000001,18999999999)),
rpad('*',400,'*')
from dual
connect by rownum <= 100000;
commit; select count(*) from range_list_part_tab partition (p_591);
select count(*) from range_list_part_tab partition (p_201302);
select count(*) from range_list_part_tab partition (p_201303);
select count(*) from range_list_part_tab partition (p_201304);
select count(*) from range_list_part_tab partition (p_201305);
select count(*) from range_list_part_tab partition (p_201306);
select count(*) from range_list_part_tab partition (p_201307);
select count(*) from range_list_part_tab partition (p_201308);
select count(*) from range_list_part_tab partition (p_201309);
select count(*) from range_list_part_tab partition (p_201310);
select count(*) from range_list_part_tab partition (p_201311);
select count(*) from range_list_part_tab partition (p_201312);
select count(*) from range_list_part_tab partition (p_max); --注意,模板的形式,子分区名是被自动命名了,系统自动组合在一起,如P_201301_P_591
select count(*) from range_list_part_tab subpartition(P_201301_P_591); create index idx_ran_list_part_id on range_list_part_tab (id) ;
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中查看)

---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 优化 —— 分区表的更多相关文章

  1. Oracle优化的几个简单步骤

    数据库优化的讨论可以说是一个永恒的主题.资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等.还有的人认为要抓出执行最慢的语句来进行优化.但实际情况 ...

  2. 谈谈怎么实现Oracle数据库分区表

    谈谈怎么实现Oracle数据库分区表 数据库的读写分离 SQLSERVER性能监控级别步骤 Oracle索引问题诊断与优化(1)

  3. PostgreSQL 与 Oracle 访问分区表执行计划差异

    熟悉Oracle 的DBA都知道,Oracle 访问分区表时,对于没有提供分区条件的,也就是在无法使用分区剪枝情况下,优化器会根据全局的统计信息制定执行计划,该执行计划针对所有分区适用.在分析利弊之前 ...

  4. ORACLE优化器RBO与CBO介绍总结

    RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer).它是SQL分析和执行的优化工具,它负责生成.制定SQL的执行计划.Oracle的优化器有两种,基 ...

  5. Oracle优化总结

    本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案.关键词 ORACLE数据库 环境调整 ...

  6. oracle优化原则(二)

    SQL优化原则 二.SQL语句编写注意问题 www.2cto.com 下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍.在这些where子句中,即使某些列存在索引,但是由于编写了劣质 ...

  7. SDE+ORACLE优化配置

    原文 SDE+ORACLE优化配置 SDE的性能取决于: 首先操作系统的性能:其次是Oracle的性能,再次是SDE的性能. 第一:操作系统,无非是内存.CPU.带宽等. 可以有待提高的地方:第一.硬 ...

  8. Oracle优化器介绍

    Oracle优化器介绍 本文讲述了Oracle优化器的概念.工作原理和使用方法,兼顾了Oracle8i.9i以及最新的10g三个版本.理解本文将有助于您更好的更有效的进行SQL优化工作. RBO优化器 ...

  9. ORACLE 优化

    本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了 ORACLE数据库的优化调整方案. 关键词 ORACLE数据库 环境 ...

随机推荐

  1. CentOS5.5下安装Ant

    从yum源直接下ant: [root@master local]$ yum install ant 运行ant,发现报错: java.lang.NoClassDefFoundError: org/ap ...

  2. SSM框架搭建java.lang.ClassNotFoundException: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter

    在搭建 spring springMVC Mybatis 时候出错 将org.springframework.http.converter.json.MappingJacksonHttpMessage ...

  3. phpstorm 2016.1注册码

    phper 享受生产PHP Web开发phpStorm.利用深代码理解,一流的编码的援助,并支持所有主要的工具和框架. 先看看 phpstorm 2016.1 带来那些新变化呢? 1,更好的PHP语言 ...

  4. 【学习笔记】【Foundation】数组

    数组:可重复,有序 不可变数组 创建数组 //array开头的方法是类方法,init开头的是实例方法 //NSArray* arr=[[NSArray alloc]initWithObjects:@& ...

  5. Android 自定义控件 EditText输入框两边加减按钮Button

    自己封装的一个控件:EditText两边放加减按钮Button来控制输入框的数值 Demo 下载地址: 第一版:http://download.csdn.net/detail/zjjne/674086 ...

  6. Visual Studio 2015 Owin+MVC+WebAPI+ODataV4+EntityFrawork+Identity+Oauth2.0+AngularJS 1.x 学习笔记

    2016年,.net 会有很多大更新 ASP.NET 5 在此之前我都是用着古老的.net做开发的 (WebForm + IIS) 为了接下来应对 .net 的新功能,我特地去学习了一下基本的 MVC ...

  7. [LeetCode 110] - 平衡二叉树 (Balanced Binary Tree)

    问题 给出一棵二叉树,判断它是否在高度上是平衡的. 对于本问题,高度上平衡的二叉树定义为:每个节点的两棵子树的深度差永远不大于1的一棵二叉树. 初始思路 根据定义,思路应该比较直接:递归计算每个节点左 ...

  8. 单片机设计与KeilC编程总结

    1基本原则    质量是关键.没有人会对很差的工作感到满足.当完成高质量的工作时,你会为此而感到骄傲.不管你是否知道,你都会因为你的高质量工作而得到信誉.因此,要想为自己所做的事感到骄傲,就需要建立个 ...

  9. Alias Method解决随机类型概率问题

    举个例子,游戏中玩家推倒了一个boss,会按如下概率掉落物品:10%掉武器 20%掉饰品 30%掉戒指 40%掉披风.现在要给出下一个掉落的物品类型,或者说一个掉落的随机序列,要求符合上述概率. 一般 ...

  10. opencv 图像仿射变换 计算仿射变换后对应特征点的新坐标 图像旋转、缩放、平移

    常常需要最图像进行仿射变换,仿射变换后,我们可能需要将原来图像中的特征点坐标进行重新计算,获得原来图像中例如眼睛瞳孔坐标的新的位置,用于在新得到图像中继续利用瞳孔位置坐标. 仿射变换在:http:// ...