全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3019
推到 Plurk!
推到 Facebook!

請問當發生deadlock時,要如何知道deadlock是死在那一段sql語法?

答題得分者是:eaglewolf
macchen
初階會員


發表:66
回覆:102
積分:33
註冊:2006-07-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-13 14:26:10 IP:211.75.xxx.xxx 訂閱
各位好,請問當發生deadlock時,要如何知道deadlock是死在那一段sql語法?因為客戶端一直發生deadlock的問題,但是我們開發的程式卻只能取得的訊息只有
Transaction (Process ID 120) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
可是卻不能像在enterprise manager下面一樣看到產生deadlock時是那一段sql語法造成的問題,著實讓人無頭緒可得知是那邊的問題,請問各位,有沒有什麼方法可以
得知造成deadlock是那一段sql語法,謝謝各位。
因為我們總不可能老是叫客戶去sql下看這些資訊吧…麻煩各位知道的告知一下,謝謝。
------
DELPHI初學者
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-16 12:23:42 IP:211.75.xxx.xxx 訂閱
執行預存程序 Sp_Who
會回傳 結果集以及以下的資訊。 [order by spid]

資料行 資料型別 說明
spid smallint 系統處理序識別碼。
ecid smallint 某給定執行緒並和特定 SPID關聯的執行內容識別碼 (Execution Context ID)。 ECID = {0, 1, 2, 3, ...n},此處的 0 永遠表示主要或父執行緒,而 {1, 2, 3, ...n} 表示子執行緒。
status nchar(30) 處理序狀態。
loginame nchar(128) 與特定處理序關聯的登入名稱。
hostname nchar(128) 每個處理序的主機或電腦名稱。
blk char(5) 區塊處理序的系統處理序識別碼 (如果有的話)。否則,此資料行為零。 當與給定 spid 關聯的交易被孤兒分散式交易封鎖時,此資料行將傳回 '-2' 給區塊的孤兒交易。
dbname nchar(128) 處理序使用的資料庫。
cmd nchar(16) 處理序執行的 SQL Server 指令 (Transact-SQL 陳述式、SQL Server 內部引擎處理序等)。

其中spid > 50 是使用者工作階段。
可直接指定 spid 例如:
EXEC sp_who 10

參考: MS-SQL Server 2000 的 Query Analyzer 的 Transact-SQL說明
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-07-16 12:25:50, 註解 無‧
eaglewolf 重新編輯於 2007-07-16 12:26:26, 註解 無‧
eaglewolf 重新編輯於 2007-07-16 12:27:06, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-19 22:11:01 IP:61.67.xxx.xxx 未訂閱
如果你只是很單純想查出這類的錯誤位置,不妨試用 eurekalog 套件,到
www.eurekalog.com 下載試用版(30天)加入到你的 form內,就可以知道錯誤列了
站內有這方面討論,關鍵字 eurekalog
系統時間:2024-06-30 2:38:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!