日期:2014-05-16  浏览次数:20953 次

oracle 分区
菜鸟一个,不懂分区,因为分区的关系,这样的表结构不适合用来分区,需要修改表结构,前面写了很多代码要改就太纠结了,希望可以不要修改表结构或者改动不大,来实现分区,望高手赐教。
create table T_PAYLIST 
(
  TRAN_ID NUMBER(18),
  ACCNO VARCHAR2(20),
  SUB_CODE VARCHAR2(10),
  CDDIRC CHAR(1),
  AMOUNT NUMBER(18)
)
create table T_Tran  
(
Tran_ID number(18),
Sno number(4),
Amount number(18),
ReckDate date,
constraint PK_BANKTRAN primary key (Tran_ID, SNO)
)
t_PayList.Tran_ID是与T_Tran.Tran_ID相关联的,一个Tran_ID,对应多条t_paylist记录,T_Tran表的主键是(Tran_ID,SNO), 现在需要根据ReckDate来分区。
希望可以实现类似的功能,t_tran作主表,t_paylist作子表。

怎么样才可以做到?


------解决方案--------------------
你分区之后 和你之前写的sql没关系,因为你之前的数据并没有分区,因此也没有分区查询
分区之后,如果你sql不加分区查询的时候,数据库会先按照分区查询,然后在做查询
如果你在sql里做了分区查询,会做分区查询

分区就是一个个数据片
------解决方案--------------------
可以把以前的数据导入到已经分区的表中
------解决方案--------------------
分区和表结构有什么关系,没有关系的,尽情分区吧