日期:2014-05-19  浏览次数:20490 次

两数据量稍大的表关联,如何提效
左表:
tb1
MobileNO
13001023456
....
右表
tb2
S_NUM S_TYPE S_PROVINCE S_XZQ_NAME S_AREACODE
1300000 联通130     北京市                     北京市                   010
1300001 联通如意通卡   江苏省   常州市                   0519
1300006 联通130卡         江苏省   南京市                   025
1300010 联通130卡         北京市   北京市                   010
.......
现在相根据tb1.MobileNO与tb2.S_NUM的关系进行关联,查找出tb1中13001023456对应tb2的S_AREACODE,写如下语句:
select   tb1.MobileNO,tb2.S_AREACODE   from   tb1   left   outer   join   tb2
on   charindex(tb2.S_AREACODE,tb1.MobileNO)=1
问题:当左表有两万条记录,右表中始终是十万条的记录时,如何做才能让结果集快速显示?(子查询试过了,索引加过,感觉速度还是极慢)

------解决方案--------------------
看看查询计划用的是那种联结
------解决方案--------------------
試下這個呢?

select tb1.MobileNO,tb2.S_AREACODE from tb1 left outer join tb2
on tb1.MobileNO Like tb2.S_AREACODE + '% '

------解决方案--------------------
“查找出tb1中13001023456对应tb2的S_AREACODE”是什么意思?
charindex(tb2.S_AREACODE,tb1.MobileNO)=1
体现了什么关系?