有三个表:A,B,C表A有两个外键字段分别连接B和C.现有记录为50万条.执行分页查询.由于感学速度慢,因此决定按各种办法建索引试试.表A结构:Bid连接到表B主键(聚集索引),Cid连接到表C主键(聚集索引),表B与表C的记录数都约为20条左右.LogID为自增型,
Bid与Cid都是非空值 int型。
LogID LogTime LogInfo Bid Cid都以查询第一页(20条)的速度为例:都是以LogTime降序
1、LogID建立聚集索引,无其他索引,不进行任何关联。单查表A,<1S
2、LogTime建立聚集索引,无其他索引,不进行任何关联。单查表A,<1S
3、与表B连接查询,LogTime建立聚集索引,无其他索引。<1S
4、与表B、C连接,LogTime建立聚集索引,无其他索引。 >=4S 
5、与表B、C连接,LogTime建立聚集索引,建立Bid索引,无其他索引。>=4S
6、与表B、C连接,LogTime建立聚集索引, 建立Bid索引,建立Cid索引。>=18S奇怪的是最后一项,不建索引与建索引快。而且表B与表C结构一样,都有一个ID和Name字段,ID都是主键并且是聚集索引

解决方案 »

  1.   

    奇怪的是最后一项,不建索引与建索引快。而且表B与表C结构一样,都有一个ID和Name字段,ID都是主键并且是聚集索引
    楼主你看一下执行计划。,还有有清空缓存再进行测试吗
      

  2.   

    不与表B连接,执行计划只扫描20行,只要与表B连接就扫描50W行,非常奇怪,表B与表A结构一样的.