日志信息:
在最后 1200 秒内,没有一个工作线程拾取了分配给节点 0 上的进程的新查询。查询被阻塞或长时间运行可能导致出现此情况,并且可能会延长客户端响应时间。请使用 "最大工作线程数(max worker threads)" 配置选项增加允许的线程数,或者优化当前正运行的查询。SQL 进程使用率: 0%%。系统空闲率: 99%%。还有大量的17883错误。SQL 目前停止响应中。

解决方案 »

  1.   

      检查点进程强制 SQL Server 将所有脏页都写入磁盘。支持和维护快速 I/O 速率以及不会导致 I/O 尝试被挂起的系统可以触发一种情况,由此,检查点进程便无需延迟以等待完成 I/O 进程。当检查点未能正确生成时,它会影响整个数据库活动和性能。这可能导致事务减少及批量提交速率降低。SQL Server 错误日志中可能出现以下错误消息:   错误:17883, 严重性:1, 状态: 0 
    建议你跟一下,利用PROFILE,记录你从起后到SQL SERVER 无响应的一段的信息,从中分析。等待你下一步的信息,不过应该和你的程序大量被访问,而出现错误有关,很多程序少量访问一般不出问题,当大量访问,问题频频。
      

  2.   

    最复杂的也就是这条语句了:select top 18 corpID,corpName,bizinfo from BDY_YP where  classID like 'b0915%' and areaID like '001016017%'  and autoID < ( select ISNULL(MIN(autoID),2147483647) from ( select TOP 0 autoID from BDY_YP where  classID like 'b0915%' and areaID like '001016017%'  order by autoID desc) as KeyFieldValueTable)  order by autoID desc
      

  3.   

    1,select  from BDY_YP where classID like 'b0915%' and areaID like '001016017%' 可以搞个临时表。2,看看你的sp_configure 'max worker threads'的值是多少?
      

  4.   

    'max worker threads' 是 512