|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
恢复到之前的某个状态,是需要数据的。这数据可以是a)回滚步骤或者b)操作之前的数据状态原文。
关于rangepartition用到多列的一个小案例
刘颖博
工夫:2003-12-29
mail:liuyingbo@126.com,请斧正
转载请说明出处及作者
1.理论
起首建分区表
createtablesimng_part(
LATN_IDNUMBER(4)notnull,
pnamechar(200),
MON_IDNUMBER(2)notnull
)
PARTITIONBYRANGE(LATN_ID,MON_ID)
(
PARTITIONPART_A01VALUESLESSTHAN(2000,2)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_A02VALUESLESSTHAN(2000,3)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_A12VALUESLESSTHAN(2000,13)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_B01VALUESLESSTHAN(2003,2)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_B02VALUESLESSTHAN(2003,3)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_B12VALUESLESSTHAN(2003,13)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_D12VALUESLESSTHAN(2020,13)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000)
)
/
insertintosimng_partvalues(2000,a,1);
insertintosimng_partvalues(2000,a,2);
insertintosimng_partvalues(2000,a,3);
insertintosimng_partvalues(2002,a,1);
insertintosimng_partvalues(2002,a,3);
insertintosimng_partvalues(2002,a,9);
insertintosimng_partvalues(2019,a,1);
commit;
createtablesimng_part1(
LATN_IDNUMBER(4)notnull,
pnamechar(200),
MON_IDNUMBER(2)notnull
)
PARTITIONBYRANGE(mon_ID,latn_ID)
(
PARTITIONPART_A01VALUESLESSTHAN(2,2000)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_B01VALUESLESSTHAN(2,2003)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_A02VALUESLESSTHAN(3,2000)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_B02VALUESLESSTHAN(3,2003)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_A12VALUESLESSTHAN(13,2000)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_B12VALUESLESSTHAN(13,2003)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000),
PARTITIONPART_D12VALUESLESSTHAN(13,2020)TABLESPACETBS_DATAPCTFREE10STORAGE(INITIAL1024KNEXT1024KMAXEXTENTS2000)
)
/
insertintosimng_part1values(2000,a,1);
insertintosimng_part1values(2000,a,2);
insertintosimng_part1values(2000,a,3);
insertintosimng_part1values(2002,a,1);
insertintosimng_part1values(2002,a,3);
insertintosimng_part1values(2002,a,9);
insertintosimng_part1values(2019,a,1);
commit;
2.成绩
先思索两个成绩:
试问表simng_part:PART_B01分区中有几笔记录。
试问表simng_part1:PART_A01分区中有几笔记录。
谜底是:
latn_idnamemon_id
第一个
2002a3
2002a1
2002a9
第二个
2000a1
2002a1
2019a1
查询以下:
SQL>select*fromsimng_partpartition(PART_B01);
LATN_IDPNAMEMON_ID
------------------------------------
2002a1
2002a3
2002a9
SQL>select*fromsimng_part1partition(PART_A01);
LATN_IDPNAMEMON_ID
------------------------------------
2000a1
2002a1
2019a1
3.结论
关于rangepartition分区,
起首注重的是,分区不包括下限
同时
关于存在多个列来举行rangepartition
遵守这个准绳:
只需满意第n列前提,就放在这个分区,而不论第n+1列是不是满意!
……………………………………………………………………………………
感激jxc@花城
每个Rows_log_event中包含event_type,可选值为WRITE_ROWS_EVENT、UPDATE_ROWS_EVENT、DELETE_ROWS_EVENT。从宏名字就能看出用途。 |
|