简单查询单表 select * from fymx where jfrq > '2009.01.01' and jfrq < '2009.01.02';
  其中jfrq是索引
  只是在查询分析器中执行就会死锁,该表数据量较大,上面查询语句的结果一般为一万条-一万五千条左右
  查询时服务器cpu占有率为2%
  但如果查询少量条数就不会死锁 但依旧很慢
  
  需要说明的是,两天前开始出现这种情况,之前都很正常,查询超过几十万的数据都没有问题。没有人对其进行修改,服务器重启也是如此,所有索引都在,实在不知是什么原因。

解决方案 »

  1.   

    已经试过重建索引了 还是这样 有没有可能是表出了问题或者sql server有问题 或是 服务器中毒之类的问题啊?
      

  2.   

    已经重建索引了 还是不行 还有别的可能吗?比如表坏掉了、sql server出现问题了 或是服务器中毒了之类的?
      

  3.   

    1、服务器中毒不排除
    2、表坏了或者sql server不太可能,如果坏了,你就出不出来了
    3、dbcc checkdb看看
      

  4.   

    那个 dbcc checkdb看看是什么意思 能说的浅显一点吗?我是初学者
      

  5.   

    select * from fymx where jfrq > '2009.01.01' and jfrq < '2009.01.02';  
    jfrq 是字符还是时间字段???  用select * from fymx with(nolock) where jfrq > '2009.01.01' and jfrq < '2009.01.02';  
    试下看看用计划看看主要时间耗在那方面
      

  6.   

    select * from fymx where jfrq > '2009-01-01' and jfrq < '2009-01-02';试一下这个
      

  7.   

    select * from fymx with(nolock) where jfrq > '2009.01.01' and jfrq < '2009.01.02'用这个速度也慢,和原来的速度一样。
      

  8.   

    日期索引,后面换成日期,测试下!
    不要varchar
      

  9.   

    即然是以前查向十万条记录都没问题,现在查一万多条都有问题,说明是数据库自身的问题,可以用性能监视器看一下SQL的读写性能如何
      

  10.   

    ALTER INDEX ALL ON fymx  
      REBUILD WITH(ONLINE = ON)select * from fymx  with (nolock) where jfrq > '2009.01.01' and jfrq < '2009.01.02';