试一下在查询时加上no lock语句

解决方案 »

  1.   

    应该是死锁,在查询语句后加  "(nolock)"
      

  2.   


    死锁只是会牺牲一个查询进程,和变慢没有关系.建议:
    1.用sp_who2 active 查看是否有进程阻塞
    2.8G内存只使用2.5G,应该是没有开启AWE,无法缓存大量数据,缓存命中率较低.
    3.用profiler跟踪数据,找到耗时的t-sql,看是否过长,是否需要优化.
    4.3kw的数据查询,如果列比较多,且where条件较多的话,可以考虑分表或分区了.
      

  3.   

     索引我建立得比较多,并且每种查询都有单独的索引,也有表分区.
    用profiler跟踪数据了一晚上,除了在整个表里查找和统计并用的几分SQL所用时间和CPU大一点儿没什么异常的.sp_who2 active 这个没看,今天路踪处理一下.
    还有哪位大哥,帮忙看看呢?
      

  4.   

    感谢perfectaction  和大家的帮忙.
    问题确认下来了,是IO方面的问题,但具体问题在哪里,还没有找出来.
      

  5.   

    建议: 
    1.用sp_who2 active 查看是否有进程阻塞 
    2.8G内存只使用2.5G,应该是没有开启AWE,无法缓存大量数据,缓存命中率较低. 
    3.用profiler跟踪数据,找到耗时的t-sql,看是否过长,是否需要优化. 
    4.3kw的数据查询,如果列比较多,且where条件较多的话,可以考虑分表或分区了
      

  6.   

     感谢各位的支持,谢谢了.现在IO基本上稳定下来了,只有很少的起伏了,再观查一下.
    解决的办法是把:SQL2005的SP2安上了,并把AWE打开了.
      

  7.   


    其实是内存缓存数据过少,以致不停从硬盘上读取数据,造成io排队过多.
    开启AWE,使数据缓存增多,提高缓存命中率,以降低io读写排队.和打sp2关系应该不大