代码之家  ›  专栏  ›  技术社区  ›  ninesided

我如何在Sybase杀死一只不守规矩的蜘蛛?

  •  2
  • ninesided  · 技术社区  · 17 年前

    我的数据库中有几个流氓蜘蛛,当我登录时,我可以看到它们正在睡觉 sa 和使用 sp_who ,但尝试使用 kill <spid> 消除它们失败了,我实际上无法访问服务器本身来恢复它。还有其他方法可以杀死这些东西吗?

    2 回复  |  直到 17 年前
        1
  •  3
  •   Learning    17 年前

    系统进程不能被终止。例如,在sp_who的输出中,cmd是网络句柄、镜像句柄和CHECKPOINT睡眠(或很少是CHECKPOINT),并且不能杀死审核进程。如果它们的状态为“recv sleep”、“send sleep”(发送睡眠)、“alarm sleep”和“lock sleep”,它们可能会被杀死。

    在sp_who输出中,您无法判断状态为“recv sleep”的进程是否属于正在使用SQL Server的用户,但可能会暂停以检查命令的结果,或者该进程是否表明用户已重新启动PC或其他终端,并留下一个搁浅的进程。您可以通过查询sysprocesss表来了解有关可疑流程的更多信息。例如:

    从spid=8的系统进程中选择主机进程和程序名

    如果program_name是isql,你就知道这个蜘蛛可以被杀死。(以此类推……)

        2
  •  0
  •   AdamH    17 年前

    我有一个客户端应用程序,有时会做类似的事情。客户端通常处于选择的中间,但不再检索行。(这可能是客户端游标,但我不确定)。这些蜘蛛似乎无法杀死。我必须找到用户并要求他们注销。

    我遇到的另一种情况是服务器上的错误或堆栈跟踪。检查你的错误日志,看看里面是否有任何可疑的条目。如果有,重启将是你唯一的选择。