其中userid为主键 
是否聚集?

解决方案 »

  1.   


    对纵表和横表的userid建立主键或索引.那么查询一般来说是纵表快.
    因为:
    纵表 select * from 纵表 where key = @key and value = @value
    横表 select * from 横表 where (key1 = @key and value1 = @value) or (key2 = @key and value2 = @value) ... or (key10 = @key and value10 = @value)
      

  2.   

    上为按key和value来查,是纵表快.
    如果是按userid来查,肯定是横表快.
      

  3.   


    设为主键就自动为聚集索引了。查询纵表:SELECT  * from col where userid ='08613575174704'
    查询横表:SELECT  * from row where userid ='08613575174704'
    上面两个语句分别执行后,读取次数都是一样的:
    逻辑读取 4 次,物理读取 4 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次时间上每次执行都有不同,但大部分时候查询纵表的速度更快。我怀疑是不是因为纵表只有三个列,其中两个列都已经在索引里面了,所以会快些??