SQL Block的初級排查

2021-09-06 05:47:06 字數 1653 閱讀 9597

使用下面的語句來找到被block的session.

select a.blocking_session_id, * 

from

sys.

dm_exec_requests a where a.blocking_session_id <> 0

使用下面的語句來找出阻塞其他session的session, 即阻塞其他人, 但自己沒被阻塞.

select kpid, *  

from

sys.

sysprocesses

where spid in

(select blocked from

sys.

sysprocesses

)and blocked = 0

如果通過上面的語句你拿到了session的spid, 那麼你可以通過下面的語句得到這個session當下正在做的事. 其中125是session的spid.

dbcc inputbuffer(125)
使用下面的語句來找到該session所對應的客戶端的資訊, 比如說機器名, ip, 埠.

select a.host_process_id,

a.host_name,

a.client_inte***ce_name,

a.login_name,

b.wait_type,

b.wait_time,

c.client_net_address,

c.client_tcp_port

from

sys.

dm_exec_sessions a,

sys.

dm_exec_requests b,

sys.

dm_exec_connections c

where a.session_id = b.session_id and b.session_id = c.session_id

and a.session_id = 108

一些簡單的基礎知識.

sys.sysprocesses

這個系統檢視包含sql例項中的各項操作(processes)的資訊. 這些操作可以是系統操作也可以是客戶端操作.

dbcc inputbuffer (session_id)

顯示從客戶端傳送到 microsoft sql server 例項的最後乙個語句

sys.dm_exec_sessions

該以伺服器為範圍的檢視檢視顯示所有活動使用者的資料庫連線還有內部的任務. 資訊包括客戶端版本, 客戶端程式名, 登入時間, 登入使用者等等. 可以首先使用這個檢視來檢視當前系統的負載, 以及發現感興趣的session, 之後再用其他的動態管理檢視或動態管理函式來獲取該session的更多資訊.

sys.dm_exec_requests

返回有關在 sql server 中執行的每個請求的資訊

sys.dm_exec_connections

返回該資料庫例項上的連線以及每個連線的具體資訊.

參考資料

sys.sysprocesses

dbcc inputbuffer

sys.dm_exec_sessions

sys.dm_exec_requests

sys.dm_exec_connections

mysql初級掌握sql MYSQL的初級使用

一 mysql的簡單使用 1.今天來記錄常用的sql命令 檢視庫 show databases 檢視表 show tables 進入庫 use 庫名 新建乙個庫 create database 庫名 新建乙個表 create table 庫名.表名 字段 型別 寬度 約束 在庫中的時候可以省掉庫名 ...

常用的排查命令

1.日誌的檢視 cat n catalina.2018 12 26.log grep index 查詢這個日誌裡面含有index字眼的並顯示行號 sed n 100,300p catalina.2018 12 26.log 檢視100到300行之間的資料 cat catalina.2018 12 2...

Cygwin 安裝 針對初級的初級,剛接觸的

寫下來只是做個記錄,順便對需要的人有點幫助。自己實踐的記錄,拒絕那種 會的不屑看,不會的看不懂 想學點c 所以參照網上的環境搭建教程開始搭建環境,在安裝cygwin的過程中,費勁啊,所以一直沒有按照那些教程來操作。我真不適應,那進度條,就閃了幾下,然後提示我安裝成功。一萬隻羊駝在我眼前奔跑而過.以上...