文章出處


 前些天一個棘手的問題,早上上班剛到公司不久,就發現系統里面出現了大量的查詢超時。
 
一開始以為是某個語句鎖住了,感覺查查,看看系統里面是否有語句死鎖了,,
  select 0 , blocked      
 
 from ( select * from master..sysprocesses where blocked>0 )a     
 
 where not exists( select * from  master..sysprocesses where a.blocked =spid and blocked >0)      
 
 union select spid ,blocked from  master ..sysprocesses where blocked >0   
 
在數據庫執行這個語句,發現沒有死鎖的問題,
 
 
系統還一直在超時的錯誤,突然想起來,是不是某個語句阻塞了,導致數據庫其他查詢都被阻塞了。于是趕緊問牛逼的 文佳哥。
 
給了我一段查詢系統阻塞的sql 語句,
--查看阻塞
SELECT
    SPID                = er.session_id
    ,STATUS             = ses.STATUS
    ,[LOGIN]            = ses.login_name
    ,HOST               = ses.host_name
    ,BlkBy              = er.blocking_session_id
    ,DBName             = DB_NAME(er.database_id)
    ,CommandType        = er.command
    ,SQLStatement       = st.text
    ,BlockingText     = bst.text
    ,ObjectName         = OBJECT_NAME(st.objectid)
    ,ElapsedMS          = er.total_elapsed_time
    ,CPUTime            = er.cpu_time
    ,IOReads            = er.logical_reads + er.reads
    ,IOWrites           = er.writes
    ,LastWaitType       = er.last_wait_type
    ,StartTime          = er.start_time
    ,Protocol           = con.net_transport
    ,ConnectionWrites   = con.num_writes
    ,ConnectionReads    = con.num_reads
    ,ClientAddress      = con.client_net_address
    ,Authentication     = con.auth_scheme
FROM sys.dm_exec_requests er
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFT JOIN sys.dm_exec_sessions ses
ON ses.session_id = er.session_id
LEFT JOIN sys.dm_exec_connections con
ON con.session_id = ses.session_id
LEFT JOIN sys.dm_exec_requests ber
ON er.blocking_session_id=ber.session_id
OUTER APPLY sys.dm_exec_sql_text(ber.sql_handle) bst
WHERE er.session_id > 50
ORDER BY er.blocking_session_id DESC,er.session_id
 
通過這個語句一查,還真有幾條語句處于阻塞的狀態,一直在等待,但是等待的語句太多,也不知道是因為那個阻塞的,通過阻塞時間,和其他的參數也看不出來,也沒辦只能把所有阻塞的語句都kill 掉。kill  SPID                
 
經過一陣折騰,系統總算是恢復正常了。但是還是沒有找到罪魁禍首,沒辦法有加了一些日子,果然,沒過多次時間,又被阻塞了,于是分析相關的日志,終于找到相關的語句了。
 
 
 
 
 
 
 
 
 

不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()