reads数质疑sql 1: select * from a where ikey = 'xxx'表 'a'。扫描计数 1,逻辑读 3 次,物理读 0 次,预读 0 次。
sql profiler : reads 108
其中走的是ikey的索引 ,a 总数102  distinct ikey总数102
sql 2: select * from b where id = 'xxx'表 'b'。扫描计数 1,逻辑读 3 次,物理读 0 次,预读 0 次。
sql profiler : reads 58
其中走的是id的索引 ,b总数60216 distinct id总数60216这样看来b的reads数要比a少很多,怎么解释呢?

解决方案 »

  1.   

    再比如:
    select * from a where ikey = 'xxx'
    sql profiler显示 reads 64.
    sp_spaceused 显示:
    name       rows        reserved   data         index_size  unused
    a              102                80 KB        24 KB        16 KB        40 KB
    严重怀疑sql profiler的准确性,总共就80k 却有64个逻辑苏  64*8K = 512K.
    需要将表读好几遍才能得到结果?太傻了吧,还是read值本来就不准?怀疑。
      

  2.   

    name      rows        reserved  data        index_size  unused
    a              102                80 KB        24 KB        16 KB        40 KB rows 102行 。每行也不大 总共80K  unused 40K.还要看什么?
      

  3.   

    不一样,数据多的 reads少,数据少的reads多,所以才有疑问。
      

  4.   

    sql server 哪个版本?是否可以提供测试数据。