今天有个需求,就是:指定200W用户(表meids_tmp),把这些用户最近15天的应用使用数据(表tb_yl_upload_info,按天分区)转移到另外一张表中(表upload_info_sub,按天分区)。
很直观,meids_tmp表63M,可以使用map端连接;要求目标表数据按日期组织,自然想到动态分区,使数据插入时自动按日期写入。最终,得到如下sql:
SELECT /*+mapjoin(b)*/ a.sn,
a.isenabled,
a.netflow,
a.icount,
a.pkg_name,
a.isdelete,
a.label,
a.vername,
a.vercode ,
a.ispreset,
a.apksize,
a.firsttime,
a.usagetime,
a.uptime,
a.parsed,
a.aid,
a.pkgid,
a.meid,
a.wifi,
a.mobile,
a.batchid,
a.parsed1,
a.model,
a.install_type,
a.ds AS ds
FROM tb_yl_upload_info a
JOIN meids_tmp b ON (a.ds>='2015-09-05'
AND a.ds<'2015-09-15'