各位,我有两张表tab1,tab2;关联查询,比如:select count(*) from tab1,tab2 where tab1.id=tab2.id
但是其中where条件的两个字段数据类型不同,比如:tab1.id varchar2(14),tab2.id number(14),这里需要说明的是这两张表表结构是不可以改动的,因为这是操作库上的表结构,是从操作库上抽取过来的底层数据,我这边对底层数据进行汇总,
tab1.id建了索引,tab2.id也建了索引,问题是关联是需要类型转换,不走索引了,而这两张表都是千万条记录级别的。请求仔细帮我看看,出点注意。ok?
但是其中where条件的两个字段数据类型不同,比如:tab1.id varchar2(14),tab2.id number(14),这里需要说明的是这两张表表结构是不可以改动的,因为这是操作库上的表结构,是从操作库上抽取过来的底层数据,我这边对底层数据进行汇总,
tab1.id建了索引,tab2.id也建了索引,问题是关联是需要类型转换,不走索引了,而这两张表都是千万条记录级别的。请求仔细帮我看看,出点注意。ok?
比如
create index idx1 on tab1 (id);
create index idx2 on tab2 (to_char(id));
这样试试看吧
关联的时候
select count(*) from tab1,tab2 where tab1.id=to_char(tab2.id)