数据分布正确。说明:子表分区分布的依据完全在于主表记录对应的分区编号。相同主表分区记录对应的子表记录,一定在相同的子表分区上。不同主表分区记录对应的子表记录,不可能在相同的子表分区上。
为便于实验,多插入一些数据:
SQL> insert into t_detail select seq_t_detail.nextval, object_id, object_name, object_type from dba_objects where object_name not in
('SEQ_T_DETAIL');
120361 rows inserted
SQL> commit;
Commit complete
SQL> exec dbms_stats.gather_table_stats(user,'T_DETAIL',cascade => true);
PL/SQL procedure successfully completed
SQL> select table_name, partition_name, high_value,num_rows from dba_tab_partitions where table_owner='SYS' and table_name in ('T_DETAIL');
TABLE_NAME PARTITION_NAME HIGH_VALUE NUM_ROWS
------------------------------ -------------------- --------------- ----------
T_DETAIL P0 67992
T_DETAIL P1 75634
T_DETAIL P3 97096
那么,Reference Partition在实际运维场景下的意义在于何处呢?
经过笔者之前的讨论,Partition技术的出发点无非在于性能和管理两个角度。性能上最典型的代表是分区裁剪、本地索引;管理最典型代表就是分区摘除、Swip分区归档。最早期Partition是针对性能方面因素比较多,近年来随着硬件性能的提升,管理方面带来的优势,越来越受到重视。
下篇中,我们将从性能和管理两个角度,讨论Reference Partition的作用。