【问题标题】:How to stop all processes in SQL Server如何停止 SQL Server 中的所有进程
【发布时间】:2018-12-14 20:23:06
【问题描述】:

我有一个作业因为阻塞而失败,我想做的是在我运行该作业时停止到数据库的所有事务以避免阻塞。那么,任何人都可以帮助解决如何停止所有事务然后运行该作业吗?

【问题讨论】:

  • 如果是生产系统,那么你应该解决根本原因。单一模式不是灵丹妙药。

标签: sql-server tsql database-administration


【解决方案1】:

有时您只需要先解决问题,然后才有时间研究根本问题。因此,考虑到这一点,您可以创建一个计划任务来重新启动 SQL Server (https://blog.sqlauthority.com/2014/11/03/sql-server-powershell-way-of-restarting-sql-server-service/)。我不建议将此作为永久解决方案,但如有必要,它可以帮助您。

有多种方法可以解决您的问题。鉴于您提供的信息有限,我将提供一些想法:

1) 在合理的情况下添加 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED(无论是在失败的工作上还是在您的过程或代码中的任何其他 SQL 上)。您想将它用于需要绝对精确的事物。例如,不要将它与任何涉及金钱的事物一起使用。但它通常使用起来非常安全(一些理想主义者会为此争论……如果您是理想主义者,请忽略此建议。如果您是实用主义者,那么这是必须的)。

WITH (NO LOCK) 也做同样的事情,但是是逐个表的。我会留给你用谷歌搜索这些术语并了解更多信息。

2) 使用活动监视器(应该是 SQL Server Management Studio 工具栏中的图标)查看作业执行时正在运行的内容以了解问题可能是什么,您也可以使用它来终止进程.

3) 使用 Sql Server Profiler(在工具菜单下)查看正在运行的查询。

4) 使用查询查看所有查询正在运行:https://blog.sqlauthority.com/2009/01/07/sql-server-find-currently-running-query-t-sql/

【讨论】:

    【解决方案2】:

    我相信您首先需要发现根本原因,但如果确实需要,那么您可能需要执行以下操作 -

    1. 在光标中运行以下代码-

       SELECT conn.session_id
       FROM sys.dm_exec_sessions AS sess
       JOIN sys.dm_exec_connections AS conn
       ON sess.session_id = conn.session_id;
      
    2. 在光标中,将每个会话 id(@sessionId) 放入变量中并使用以下 -

      kill @sessionId
      

    下面是完整的代码 -

        DECLARE @session_id int
        declare Mycursor cursor for 
           SELECT conn.session_id
           FROM sys.dm_exec_sessions AS sess
           JOIN sys.dm_exec_connections AS conn
           ON sess.session_id = conn.session_id
    
       OPEN Mycursor
       FETCH NEXT FROM Mycursor INTO @session_id 
       WHILE @@FETCH_STATUS = 0  
    
       BEGIN  
           Exec ('kill ' + @session_id)
    
        FETCH NEXT FROM Mycursor INTO @session_id  
    
      END   
     CLOSE Mycursor;  
     DEALLOCATE Mycursor;   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2013-02-23
      • 2023-01-16
      • 2018-09-18
      • 2011-10-25
      相关资源
      最近更新 更多