在 SQL Server 中查找活動連接和死鎖

来源:https://www.cnblogs.com/broadm/archive/2022/07/15/16482308.html
-Advertisement-
Play Games

在SQL Server中有幾種方法可以找到活動的 SQL 連接。讓我們看看一些使用 T-SQL 查詢的簡單快捷的方法。 SP_WHO SP_WHO 是 SQL Server 內置的系統存儲過程, 其他方法相比,SP_WHO 將具有最少的列,但是一種快速列出活動連接的方法。 以下是在 SQL Serv ...


在SQL Server中有幾種方法可以找到活動的 SQL 連接。讓我們看看一些使用 T-SQL 查詢的簡單快捷的方法。

SP_WHO

SP_WHO 是 SQL Server 內置的系統存儲過程, 其他方法相比,SP_WHO 將具有最少的列,但是一種快速列出活動連接的方法。

以下是在 SQL Server Management Studio 中的執行示例:

EXEC SP_WHO

image

具體的欄位解釋請參閱官方文檔 SP_WHO
其中比較重要的列是:

  • spid: 會話ID
  • loginname: 登錄賬號
  • blk: 阻塞進程的會話ID(如果存在)。否則,此列為零, 可以使用該列排查死鎖

SYS.SYSPROCESSES

另一種查找活動 SQL 連接的絕妙方法是使用系統相容性視圖 SYS.SYSPROCESSES
此視圖有很多列,其中包含很多信息,這些信息有助於您找出活動的 sql 連接,尤其是當您想要查找被阻塞的進程時。但是,這是向後相容的視圖,不建議使用,因為未來的版本可能會刪除它

以下是在 SQL Server Management Studio 中的執行示例:

SELECT * FROM SYS.SYSPROCESSES

image

具體的欄位解釋請參閱官方文檔 SYS.SYSPROCESSES

SYS.DM_EXEC_SESSIONS (建議使用)

SYS.DM_EXEC_SESSIONS 是替代舊系統表 sysprocesses 的動態管理視圖之一。SYS.DM_EXEC_SESSIONS 的優點是它的列 is_user_process 。使用此列,您可以輕鬆過濾掉系統進程。

以下是在 SQL Server Management Studio 中的執行示例:

SELECT * FROM SYS.DM_EXEC_SESSIONS where is_user_process = 1

image

具體的欄位解釋請參閱官方文檔 SYS.DM_EXEC_SESSIONS

用於查找 SQL Server 中的死鎖的 T-SQL 查詢

下麵是我用來快速查找死鎖的查詢。此語句基於SYS.DM_EXEC_REQUESTS 動態管理視圖。在此語句中,blocking_session_id 列為您提供了阻塞連接的 session_id,而 wait_type 列為您提供了導致 deadlock 的 等待類型。獲得blocking_session_id 後,您可以使用 SYS.DM_EXEC_SESSIONS 來獲取有關會話或連接的更多詳細信息。

SELECT
    session_id,
    start_time, 
    [status],
    command,
    blocking_session_id,
    wait_type,
    wait_time,
    open_transaction_count,
    transaction_id,
    total_elapsed_time,
    Definition = CAST(text AS VARCHAR(MAX))
FROM
    SYS.DM_EXEC_REQUESTS
    CROSS APPLY sys.dm_exec_sql_text(sql_handle) 
WHERE blocking_session_id != 0

image

上圖我們得到了正在發生阻塞的會話信息和所執行的SQL語句(Definition)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、 Linux用戶和組及其許可權管理 請根據以下項目要求,寫出操作過程和命令併進行相應的驗證測試操作。 項目要求: 某軟體開發公司即將開始在Linux系統上進行項目的開發。要實現的環境是:公司有軟體開發,網路和技術支持3個部門,對應建立3個用戶組為project,technology,market。 ...
  • 覓長生 for Mac是一款以傳統道家文化與修真為題材的修仙角色扮演游戲,玩家在覓長生mac版游戲中可以體驗從零開始,一步步積攢修為突破境界的逆天修仙之旅。覓長生mac版玩法非常簡單,戰鬥目前採用了卡牌對戰方式,讓玩家能夠輕鬆駕馭游戲! 詳情:覓長生 for Mac(修仙角色扮演游戲) 修仙小說是我 ...
  • FontLab VI Mac版是Mac平臺上的一款字體編輯器應用。FontLab VI Mac版是專為字體鑄造廠、專業設計師、印刷和平面設計工作室設計的軟體。 詳情:FontLab 8 for mac(字體編輯器應用) 功能介紹 1、下一代繪圖 創造Bézier曲線不再是“精通或神秘”。 2、刷子和 ...
  • AIrBuddy Mac版是Mac平臺上的一款可以幫助用戶更好的體驗和使用AIrPods及Beats無線耳機的應用。只需點擊一下,即可連接並將Mac的音頻播放到AIrPods。它還可以確保Mac的音頻輸入不會切換到AIrPods,這樣您就可以獲得最佳質量。 詳情:AirBuddy for Mac(A ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 一、paramiko模塊簡介 paramiko是一個用於做遠程式控制制的模塊,使用該模塊可以對遠程伺服器進行命令或文件操作,基於linux中的ssh服務 。paramiko是第三方模塊,需要我們單獨安裝。通過paramiko模塊,我們可以利用pyth ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 前言 出現這種bug Unit mysql.service could not be found 因為bug被我修複好了,在這裡引用一下網友的bug截圖 1. 原理 之所以使用命令行service mysqld status出現Unit mysq ...
  • SecureFX for Mac是一款跨平臺文件傳輸客戶端軟體,有著易用的、類似於資源管理器的用戶界面。securefx mac可以更加有效的實現文件的安全傳輸,您可以使用其新的拖放功能直接將文件拖至Windows Explorer和其他程式中,用戶也可以充分利用SecureFX for mac的自 ...
  • 基礎知識 進程 內核的功能和作用:文件系統管理、網路管理、進程管理、記憶體管理等,屬於linux最基礎的功能 進程:process,正在運行中的程式的一個副本。允許有多個進程同時執行。 #操作系統負責分配cpu運行進程的順序和時間 #副本:把磁碟上的指定文件載入到記憶體進行運行 運行多次就會有多個副本 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...