- 论坛徽章:
- 0
|
从a表中选出字段aaa的值在b表中字段bbb中存在。并插入临时表
a表4千万的记录,b表800条记录
我用
insert into yjxxb_temp
select rowid as oldrowid, sjjdm as sjjdm, jdjdm as jdjdm,'0' as bj
from gd_yjxxb where (sjjdm in (select oldjgdm from all_record)
or jdjdm in (select oldjgdm from all_record))
oracle817会进行一次fast index scan,速度特慢,十几个小时完不了。
上面那sql语句的解释计划是这样的
1此计划步骤通过依次扫描叶节点来检索 B*-tree 索引 GD_YJXXB_SJJDM_JDJDM 中的所有 ROWID。
2此计划步骤对范围分区表的所有分区进行迭代。
3此计划步骤检索表 ALL_RECORD 中的所有行。
4此计划步骤检索表 ALL_RECORD 中的所有行。
5此计划步骤接受多组行。第一组中的行要用第二到 n 组中的数据删除。
6此计划步骤将该语句指定为 INSERT 语句。
有哪为达人有好的解决方案啊? |
|