MS SQL 2005,自动杀死进程

我们正在运行一个程序,在每个实例的MS SQL Server上创build4-5个进程。 当进程数超过230时,程序停止工作,每隔几分钟就崩溃一次(sql服务器日志说:“由于ASYNC_NETWORK_IO上有大量的工作线程,处理器使用率为0%,所以节点0上的所有调度器似乎都死锁了) 。 当发生这种情况时,我们的解决scheme是杀死SQL服务器上的进程,这些进程不会导致任何其他问题,但是我们想永久解决这个问题。 我们如何解决根本问题? 或者,如果这只是有问题的应用程序的开发人员可以做的事情,那么我们有什么可能创build一个工作周期(例如,这些进程的超时?)

看看是否有帮助: http : //blogs.msdn.com/b/psssql/archive/2008/09/03/how-it-works-17888-all-schedulers-on-node-appear-deadlocked.aspx

如果您的程序在SQL实例上创build了5个连接,并且您看到230个繁忙的实例,这意味着至less有46个程序副本。 这些都在同一个工作站上运行吗? IIRC,默认的工人数量是255,很可能你碰到了这个问题。 其中一个后果就是客户的login时间很长。 根据应用程序的不同,login超时可能导致崩溃,所以长时间运行的查询可能会发生。

ASYNC_NETWORK_IO意味着SQL Server正在等待客户端应用程序从SQL Server读取数据。 也许你已经饱和了工作站上的networking连接,甚至在服务器上?

你在服务器上有什么样的networking硬件? 它是多核服务器吗?