十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
--查看死鎖
創(chuàng)新互聯(lián)建站于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目做網(wǎng)站、成都網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元磐石做網(wǎng)站,已為上家服務,為磐石各地企業(yè)和個人服務,聯(lián)系電話:13518219792
select spid, blocked, loginame, last_batch, status, cmd, hostname, program_name?
from sysprocesses?
where spid in?
( select blocked from sysprocesses where blocked 0 ) or (blocked 0)?
--解鎖
kill 進程號(spid)
死鎖,簡而言之,兩個或者多個trans,同時請求對方正在請求的某個對象,導致雙方互相等待。簡單的例子如下:\x0d\x0a trans1 trans2\x0d\x0a ------------------------------------------------------------------------\x0d\x0a 1.IDBConnection.BeginTransaction 1.IDBConnection.BeginTransaction\x0d\x0a 2.update table A 2.update table B\x0d\x0a 3.update table B 3.update table A\x0d\x0a 4.IDBConnection.Commit 4.IDBConnection.Commit \x0d\x0a 那么,很容易看到,如果trans1和trans2,分別到達了step3,那么trans1會請求對于B的X鎖,trans2會請求對于A的X鎖,而二者的鎖在step2上已經(jīng)被對方分別持有了。由于得不到鎖,后面的Commit無法執(zhí)行,這樣雙方開始死鎖。\x0d\x0a 好,我們看一個簡單的例子,來解釋一下,應該如何解決死鎖問題。\x0d\x0a -- Batch #1\x0d\x0a CREATE DATABASE deadlocktest\x0d\x0a GO\x0d\x0a USE deadlocktest\x0d\x0a SET NOCOUNT ON\x0d\x0a DBCC TRACEON (1222, -1)\x0d\x0a -- 在SQL2005中,增加了一個新的dbcc參數(shù),就是1222,原來在2000下,我們知道,可以執(zhí)行dbcc \x0d\x0a --traceon(1204,3605,-1)看到所有的死鎖信息。SqlServer 2005中,對于1204進行了增強,這就是1222。\x0d\x0a GO \x0d\x0a \x0d\x0a IF OBJECT_ID ('t1') IS NOT NULL DROP TABLE t1\x0d\x0a IF OBJECT_ID ('p1') IS NOT NULL DROP PROC p1\x0d\x0a IF OBJECT_ID ('p2') IS NOT NULL DROP PROC p2\x0d\x0a GO\x0d\x0a CREATE TABLE t1 (c1 int, c2 int, c3 int, c4 char(5000)) \x0d\x0a GO\x0d\x0a DECLARE @x int\x0d\x0a SET @x = 1\x0d\x0a WHILE (@x = [@p1] AND [t1].[c2] = [@p1] AND [deadlocktest].[dbo].[t1].[c2]
回答于?2022-11-16
死鎖檢測
use master
Select * from sysprocesses where blocked0
--找到SPID
exec sp_lock
--根據(jù)SPID找到OBJID
select object_name(85575343)
--根據(jù)OBJID找到表名
sqlserver的數(shù)據(jù)庫文件是什么?
以 .MDF結尾的是數(shù)據(jù)庫文件,以 .LDF結尾的是日志文件 ;
在企業(yè)管理器中選擇您的要導入數(shù)據(jù)的數(shù)據(jù)庫,然后點擊右鍵,選擇所有任務-附加數(shù)據(jù)庫-選擇MDF文件,就可以了 ;
對于數(shù)據(jù)庫的還原,最好的備份數(shù)據(jù)庫后,再還原數(shù)據(jù)庫??梢允褂枚ㄆ趥浞?;