到底该怎样建索引才嫩个加快查询?
--
要跟据你的查询条件而定,如你所说在age字段上设了索引,但在查询条件中并没有牵涉到该字段,自然就没有用·!

解决方案 »

  1.   

    首先看一下你的语句是不是符合使用该索引的条件
    再就是使加了索引在运行的时候  
    sql server也会自动优化
    它认为没必要使用的就不会使用
    还是就是你用什么方法来检测你的运行速度
    个人觉得没有一个很精确测定执行时间的方法
    在优化的方法里
    使用适当的索引确时能提高查询速度
    而且有时大幅度的提高
      

  2.   

    下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条): 
    (1)仅在主键上建立聚集索引,并且不划分时间段: 
    Select gid,fariqi,neibuyonghu,title from tgongwen 
    用时:128470毫秒(即:128秒) 
    (2)在主键上建立聚集索引,在fariq上建立非聚集索引: 
    select gid,fariqi,neibuyonghu,title from Tgongwen 
    where fariqi> dateadd(day,-90,getdate()) 
    用时:53763毫秒(54秒) 
    (3)将聚合索引建立在日期列(fariqi)上: 
    select gid,fariqi,neibuyonghu,title from Tgongwen 
    where fariqi> dateadd(day,-90,getdate()) 
    用时:2423毫秒(2秒) 
      虽然每条语句提取出来的都是25万条数据,各种情况的差异却是巨大的,特别是将聚集索引建立在日期列时的差异。事实上,如果您的数据库真的有1000万容量的话,把主键建立在ID列上,就像以上的第1、2种情况,在网页上的表现就是超时,根本就无法显示
      

  3.   

    得出以上速度的方法是:在各个select语句前加:declare @d datetime 
    set @d=getdate() 
    并在select语句后加: 
    select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate()) 
      

  4.   

    我是按age字段查询的啊
    age between 25 and 30