select tabla.*,tablb.*
from tabla,select tablc.* ,(from tablc where tablc.d='xxx') tablb
where tabla.a=tablb.a(+) and
      tabla.b=tablb.b(+) and
      tabla.c='xxx'
这样的SQL文怎么建索引

解决方案 »

  1.   

    tablb是个临时的
    tablc还有一个检索条件
    主表也有检索条件tabla.c='xxx' 帮一把,同志们
      

  2.   

    你的sql语句语法根本就不正确.
      

  3.   

    to:liuyi8903 说的对sql语句是有问题
    改过了
    select   tabla.*,tablb.* 
    from   tabla,(select   tablc.*   from   tablc   where   tablc.d='xxx')   tablb 
    where   tabla.a=tablb.a(+)   and 
                tabla.b=tablb.b(+)   and 
                tabla.c='xxx' 
      

  4.   

    这样的SQL跟你上面的SQL得到的结果一样吗?如果一样,用这个SQL比较好!!
    select   tabla.*,tablc.*  from   tabla,tablc  where 
    tabla.c='xxx' 
    and  tablc.d='xxx' 
    and  tabla.a=tablc.a(+) 
    and  tabla.b=tablc.b(+) 
    在tabla.c,tablc.d中创建B树索引在tabla,tablc的a b 列上建立聚簇
      

  5.   

    to:无语
    tablc.d='xxx'
    能过滤25%的数据tablc.d='xxx'   就不好说了
      

  6.   

    to:冰封XXX
    select       tabla.*,tablc.*     from       tabla,tablc     where   
    tabla.c='xxx'   
    and     tablc.d='xxx'   
    and     tabla.a=tablc.a(+)   
    and     tabla.b=tablc.b(+)   因为是使用外联
    这样做tabla表的数据不能被全部选出
      

  7.   

    在没有特殊情况下,在tabla.c,tablc.d中创建B树索引 就可以了