Select   <---   Top          <---    Clustered Index Scan
成本0%          成本0%               成本100%语句是select top 10 * from [tbl] where name Like 'X%'表中总数据量小用的是 NONClustered Index Scan
表中总数据量大就变成上面的了。

解决方案 »

  1.   

    去掉top 10 呢,会怎么样?
      

  2.   

    第二种情况下,你的表里大概有多少记录?
    name字段里值都是怎么分布的呢?
      

  3.   

    我使用dbcc indexdefrag()看的
    大概在500条数据以下,执行dbcc indexdefrag()返回pages=0,这时候就使用NONClustered Index Scan
    我又填充了近10000条数据,执行dbcc indexdefrag()返回pages是100多,这时候就Clustered Index Scan了name字段的值是'Name:'+str(@i),@i是从1到10000的int值,我执行while语句Insert的。