正在从应用程序执行存储的proc的会话之一停留在killed \ rollback阶段。可以说,存储库回滚的时间不应该太长,并且已经永久存在了。基本上,存储过程是一堆带有工会的选择,我很好奇为什么这会持续这么长时间。就等待而言,下面是我所等待的片段。我想了解如何摆脱不重新启动SQL服务的情况,最重要的是,为了避免这种情况,无论是从应用程序端还是从SQL端,都可以做些基本的事情。让我知道是否还有其他需要。另外,这些存储过程正在使用[SalesForce]作为链接服务器,并使用DBAmp来获取数据...这是否是原因以及如何克服这些原因。
答案 0 :(得分:0)
根据an eternity
的停留时间,它可能会永远挂起。
我以前在一个环境中工作,在该环境中,我们通常将数据从大型机应用程序提取到SQL Server中。大型机会定期终止连接,但是不会将任何信息传递回SQL Server,SQL Server会很高兴地处于“正在执行”状态,等待查询结果。第二天,当同一作业将运行时,not-executing-executing-query将阻止新实例并引发错误。
KILL
建立不间断的连接将允许新实例运行,但是旧实例将保留在KILLED\ROLLBACK
中,直到我们重新启动SQL Services。
由于僵尸没有任何干扰,因此我们通常会让它们一直呆到每月维护时段。
在实施此变通办法之前,我们几次让大型机服务器工程师为我们核实,就大型机而言,确实没有活动的连接。您应该检查SalesForce
面,看看那里是否有任何活动。