有2个表,分别有10万数据,表T1,有字段codeid,indate ;表T2,有startid,endid,nums现两表关联查询
select A.*,B.*
from  T1 A,T2 B
Where A.codeid like '%p%' AND A.Codeid between B.startid And B.endid(这样查好慢)
请问可以怎么优化呢.各位帮帮忙.谢谢

解决方案 »

  1.   

    like  '%p%'  前后都有百分号的,index是没有作用的。
    看看这个条件能不能找到其他替换方法。
      

  2.   

    如果要改的话,就只有 A.code>'MCp1000000'这样可以达到一样的效果.
      

  3.   

    index索引我不太会,要怎么建立呢
      

  4.   

    你替换成这个条件,选中sql 语句,ctrl + L 看看执行计划,如果有table scan的地方请给相关
    栏位加上index,看看执行效率如何。
      

  5.   

    另外我觉得between 这个地方好慢(因为2个表的数据都10万条数据).,不知道有没别的好的方法.
      

  6.   

    参考图上,右键新建index,然后输入index名称,点击右边的add,然后选择相关栏位,然后OK。
      

  7.   

    你去除那个between and 条件查询看看效能如何呢?
      

  8.   

    象我这个例子,是不是表T1建立codeid字段的索引,那T2要建立索引吗
      

  9.   

    我意思是去了,看看between前后的执行效率的差别,不是让你直接不要了。
      

  10.   

    凡是有table scan的地方就加上吧,走index scan。
      

  11.   

    高手哇 INDEX scan 还没用过,看来要学习学习了