国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

深入講解阻塞現象的產生原因及處理方法

2024-07-21 02:42:10
字體:
來源:轉載
供稿:網友
1. 使用 sp_who 這個存儲過程, 查詢sql上的當前進程, 觀察 blk 列值是否有不為0的, 如果有不為 0 的, 表示有阻塞, 產生阻塞的進程的 spid 即是 blk 列值, 被阻塞的進程是 列 blk 值不為0的記錄行對應的 spid。

2. 執行 sp_lock

3. 執行 sp_lock

4. 結合 2, 3 分析原因。

5. 使用 dbcc inputbuffer(

如果要自動刪除阻塞的進程, 那么寫一個 job 定期查詢 sp_who , 將 blk 列值不為 0 的記錄找出來, 用 kill 殺掉相關的進程即可。

注意, 一般不要輕易殺進程, 如果你的程序沒有寫好, 可能會導致不完整的數據。

例如, 在寫訂單主表和明細表的處理中, 沒有使用事務, 當主表數據插入完成, 準備插入明細表數據時, 產生阻塞, 被你的監控程序 kill 掉的話, 就導致數據庫中有不完整的訂單(只有主表, 沒有明細數據)。

另外, 如果你的程序的錯誤處理沒有控制好, 則這樣殺進程也容易導致程序崩潰, 丟失等。

另外, 查詢進程相關的信息也可以直接查詢 master.dbo.sysPRocesses, 這里包含完整的信息, 你可以通過 blocked 列看是否有阻塞發生, 也可以看諸如登錄的用戶, 客戶端, 使用此進程的前端applicationame等信息。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吐鲁番市| 梁山县| 大竹县| 南皮县| 乌鲁木齐市| 科技| 泸溪县| 修水县| 南溪县| 苏尼特右旗| 海原县| 涪陵区| 五原县| 泰来县| 安远县| 建平县| 虹口区| 修水县| 滦平县| 安宁市| 金寨县| 印江| 景德镇市| 松原市| 佳木斯市| 小金县| 东乡族自治县| 星座| 石嘴山市| 平乡县| 蛟河市| 泽州县| 望奎县| 汪清县| 海阳市| 土默特右旗| 牡丹江市| 玉田县| 蛟河市| 新兴县| 乌拉特前旗|