select top 10 col1,col2,col3 from table1 where col1='1000'select top 10 col1,col2,col3 from table1 where col1='1200'两条同样的语句,只是条件不一样,根据条件产生的数据量不一样,
但是性能却有很大的差异,我有一针对col1的索引,但是一条语句
使用索引了,另一条却不使用,导致很慢
(根据条件产生的数据量大的明显慢很多,索引无效)。请教是什么原因,如何处理?

解决方案 »

  1.   

    不是索引无效,可能是col1='1000'的数据量与col='1200'相差太大了,SQL语句执行起来也是有顺序的
    先查询到相等条件的数据,然后再取前10行数据
      

  2.   

    select count(*) from table1 where col1='1000'select count(*) from table1 where col1='1200'看看。
      

  3.   

    10W条数据里只有几条col1='1000' 的数据,索引基本没什么优势,相反要是有几W条,那索引效果明显!
      

  4.   

    是col1='1000'的数据量与col='1200'相差太大,那怎么处理呢。
      

  5.   


     with 强制执行计划?一般不推荐的