求教索引专家: 终于找到查询缓慢的原因了? 但不知该如何解决!有一个40万条记录的雇员表, 按部门和性别查询时速度非常慢, 如果把
and a.Sex=0条件去掉, 发现速度就正常了, 说明是Sex字段导致SQL发生
了表扫描引起速度缓慢, 书上都说逻辑字段不用建索引, 这种情况该如何
处理呢? 谢谢!!!语句如下:Select a.personId, a.name, b.depName       From Person a inner join dep b On a.DepId=B.depId -- 按部门关联       Where b.DepId=1 and a.Sex=0说明: Person与Dep部门表DepId字段都分别建有簇索引, 由于Sex字段只有两种状态,
      未建索引;

解决方案 »

  1.   

    现在的问题是发生了表扫描,Sex字段上又不能建索引,只要发生了表扫描,查询就是缓慢的了。不知这种问题如何解决呢?
      

  2.   

    Sex字段建索引一定是无效的吗?
      

  3.   

    ALTER INDEX index_name REBUILD;
      

  4.   

    不好意思,是我搞错了,还是哪个老问题,原来我把and a.Sex=0
    这个注释了!!!头晕!!!! 如何是好啊!
      

  5.   

    重建索引我已操作N次了,没什么作用!分析优化器,主要是发生了表扫描。I/O成本达到:0.234 的惊人程度。
      

  6.   

    select personId,name,(select depName from dep where DepId=Person.depId) depName
    from Person
    where DepId=1 and Sex=0;
    //建立Person.DepId和dep.DepId的索引,不要Person.Sex的索引