我的数据表里总共有700条数据,为什么用“SELECT count(*) FROM [ContractChangeSearchView] WHERE  ApplictionType is not NULL  AND CreationDate >= '2011-3-25'  AND CreationDate <= '2011-4-16' ”这条语句查询确需要三分钟这么长的时间,而查询的结果只有70条数据?

解决方案 »

  1.   

    根顺序没关系。你可以用三楼的方法。between...and...
      

  2.   

    SELECT count(*) FROM [ContractChangeSearchView] WHERE ApplictionType is not NULL AND CreationDate >= '2011-3-25' AND CreationDate <= '2011-4-16一句一句分析,先把条件去掉,在creationDate上建索引
      

  3.   

    不行啊,我用“SELECT  * FROM [ContractChangeSearchView] WHERE  ApplictionType is not NULL  AND (CreationDate between '2011-3-14' AND '2011-4-16')”得到的结果所需要的时间依然很长
      

  4.   

     ContractChangeSearchView 是视图吗?
      

  5.   

    reationDate是字符串类型还是日期类型呢,不要用字符串类型,数字类型比较快
      

  6.   

    是日期类型的字段,ContractChangeSearchView 是以ContractChange为主构成的视图,这条语句放在ContractChange表里查询的速度很快,但是在视图里就很慢,最后说一下我用的是SQLSERVER 2005