亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁(yè) >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

sql server死鎖的精辟解釋

添加時(shí)間:2013-5-6 17:34:27  添加: 思海網(wǎng)絡(luò) 

sysprocesses
sysprocesses 表中保存關(guān)于運(yùn)行在 Microsoft® SQL Server™ 上的進(jìn)程的信息。這些進(jìn)程可以是客戶端進(jìn)程或系統(tǒng)進(jìn)程。sysprocesses 只存儲(chǔ)在 master 數(shù)據(jù)庫(kù)中。

列名 數(shù)據(jù)類型 描述
spid smallint SQL Server 進(jìn)程 ID。
kpid smallint Microsoft Windows NT 4.0® 線程 ID。
blocked smallint 分塊進(jìn)程的進(jìn)程 ID (spid)。
waittype binary(2) 保留。
waittime int 當(dāng)前等待時(shí)間(以毫秒為單位)。當(dāng)進(jìn)程不處于等待時(shí),為 0。
lastwaittype nchar(32) 表示上次或當(dāng)前等待類型名稱的字符串。
waitresource nchar(32) 鎖資源的文本化表示法。
dbid smallint 當(dāng)前正由進(jìn)程使用的數(shù)據(jù)庫(kù) ID。
uid smallint 執(zhí)行命令的用戶 ID。
cpu int 進(jìn)程的累計(jì) CPU 時(shí)間。無論 SET STATISTICS TIME ON 選項(xiàng)是 ON 還是 OFF,都為所有進(jìn)程更新該條目。
physical_io int 進(jìn)程的累計(jì)磁盤讀取和寫入。
memusage int 當(dāng)前分配給該進(jìn)程的過程高速緩存中的頁(yè)數(shù)。一個(gè)負(fù)數(shù),表示進(jìn)程正在釋放由另一個(gè)進(jìn)程分配的內(nèi)存。
login_time datetime 客戶端進(jìn)程登錄到服務(wù)器的時(shí)間。對(duì)于系統(tǒng)進(jìn)程,是存儲(chǔ) SQL Server 啟動(dòng)發(fā)生的時(shí)間。
last_batch datetime 客戶端進(jìn)程上次執(zhí)行遠(yuǎn)程存儲(chǔ)過程調(diào)用或 EXECUTE 語(yǔ)句的時(shí)間。對(duì)于系統(tǒng)進(jìn)程,是存儲(chǔ) SQL Server 啟動(dòng)發(fā)生的時(shí)間。
ecid smallint 用于唯一標(biāo)識(shí)代表單個(gè)進(jìn)程進(jìn)行操作的子線程的執(zhí)行上下文 ID。
open_tran smallint 進(jìn)程的打開事務(wù)數(shù)。
status nchar(30) 進(jìn)程 ID 狀態(tài)(如運(yùn)行、休眠等)。
sid binary(85) 用戶的全局唯一標(biāo)識(shí)符 (GUID)。
hostname nchar(128) 工作站的名稱。
program_name nchar(128) 應(yīng)用程序的名稱。
hostprocess nchar(8) 工作站進(jìn)程 ID 號(hào)。
cmd nchar(16) 當(dāng)前正在執(zhí)行的命令。
nt_domain nchar(128) 客戶端的 Windows NT 4.0 域(如果使用 Windows 身份驗(yàn)證)或信任連接的 Windows NT 4.0 域。
nt_username nchar(128) 進(jìn)程的 Windows NT 4.0用戶名(如果使用 Windows 身份驗(yàn)證)或信任連接的 Windows NT 4.0 用戶名。
net_address nchar(12) 指派給每個(gè)用戶工作站上的網(wǎng)絡(luò)接口卡唯一標(biāo)識(shí)符。當(dāng)用戶登錄時(shí),該標(biāo)識(shí)符插入 net_address 列。
net_library nchar(12) 用于存儲(chǔ)客戶端網(wǎng)絡(luò)庫(kù)的列。每個(gè)客戶端進(jìn)程都在網(wǎng)絡(luò)連接上進(jìn)入。網(wǎng)絡(luò)連接有一個(gè)與這些進(jìn)程關(guān)聯(lián)的網(wǎng)絡(luò)庫(kù),該網(wǎng)絡(luò)庫(kù)使得這些進(jìn)程可以建立連接。有關(guān)更多信息,請(qǐng)參見客戶端和服務(wù)器 Net-Library。
loginame nchar(128) 登錄名。

nmliwei http://www.**************.com 2006-11-16 08:18

那滿足什么條件的是死鎖呢?

阿楚 http://www.**************.com 2006-11-16 08:42

當(dāng)某組資源的兩個(gè)或多個(gè)線程之間有循環(huán)相關(guān)性時(shí),將發(fā)生死鎖。

死鎖是一種可能發(fā)生在任何多線程系統(tǒng)中的狀態(tài),而不僅僅發(fā)生在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中。多線程系統(tǒng)中的一個(gè)線程可能獲取一個(gè)或多個(gè)資源(如鎖)。如果正獲取的資源當(dāng)前為另一線程所擁有,則第一個(gè)線程可能必須等待擁有線程釋放目標(biāo)資源。這時(shí)就說等待線程在那個(gè)特定資源上與擁有線程有相關(guān)性。

如果擁有線程需要獲取另外一個(gè)資源,而該資源當(dāng)前為等待線程所擁有,則這種情形將成為死鎖:在事務(wù)提交或回滾之前兩個(gè)線程都不能釋放資源,而且它們因?yàn)檎却龑?duì)方擁有的資源而不能提交或回滾事務(wù)。例如,運(yùn)行事務(wù) 1 的線程 T1 具有 Supplier 表上的排它鎖。運(yùn)行事務(wù) 2 的線程 T2 具有 Part 表上的排它鎖,并且之后需要 Supplier 表上的鎖。事務(wù) 2 無法獲得這一鎖,因?yàn)槭聞?wù) 1 已擁有它。事務(wù) 2 被阻塞,等待事務(wù) 1。然后,事務(wù) 1 需要 Part 表的鎖,但無法獲得鎖,因?yàn)槭聞?wù) 2 將它鎖定了。事務(wù)在提交或回滾之前不能釋放持有的鎖。因?yàn)槭聞?wù)需要對(duì)方控制的鎖才能繼續(xù)操作,所以它們不能提交或回滾。

死鎖經(jīng)常與正常阻塞混淆。當(dāng)一個(gè)事務(wù)鎖定了另一個(gè)事務(wù)需要的資源,第二個(gè)事務(wù)等待鎖被釋放。默認(rèn)情況下,SQL Server 事務(wù)不會(huì)超時(shí)(除非設(shè)置了 LOCK_TIMEOUT)。第二個(gè)事務(wù)被阻塞,而不是被死鎖。

nmliwei http://www.**************.com 2006-11-16 09:52

我是說在SYSPROCESSES中查死鎖 WHERE后面的條件該怎么寫,不是問大家要死鎖的定義,同志們.

[ 本帖最后由 nmliwei 于 2006-11-16 17:54 編輯 ]

阿楚 http://www.**************.com 2006-11-16 10:32

不好意思,開始時(shí)沒明白你的意思。

找到下面這些,也許會(huì)有些幫助

 


常看到死鎖的問題,一般都是KILL進(jìn)程,但如果不查出引起死鎖的原因,死鎖會(huì)時(shí)常發(fā)生
可以通過查找引起死鎖的的操作,就可以方便的解決死鎖,現(xiàn)將日常解決問題的方法總結(jié),也許對(duì)大家有幫助

1\死鎖發(fā)生時(shí),通過如下語(yǔ)法,查詢出引起死鎖的操作

use master
go
declare @spid int,@bl int
DECLARE s_cur CURSOR FOR
select 0 ,blocked
from (select * from sysprocesses where blocked>0 ) a
where not exists(select * from (select * from sysprocesses where blocked>0 ) b
where a.blocked=spid)
union select spid,blocked from sysprocesses where blocked>0
OPEN s_cur
FETCH NEXT FROM s_cur INTO @spid,@bl
WHILE @@FETCH_STATUS = 0
begin
if @spid =0
        select '引起數(shù)據(jù)庫(kù)死鎖的是: '+ CAST(@bl AS VARCHAR(10)) + '進(jìn)程號(hào),其執(zhí)行的SQL語(yǔ)法如下'
else
        select '進(jìn)程號(hào)SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '進(jìn)程號(hào)SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其當(dāng)前進(jìn)程執(zhí)行的SQL語(yǔ)法如下'
DBCC INPUTBUFFER (@bl )
FETCH NEXT FROM s_cur INTO @spid,@bl
end
CLOSE s_cur
DEALLOCATE s_cur

exec sp_who2
2\查找程序/數(shù)據(jù)庫(kù),此t_sql語(yǔ)法在什么地方使用
3\分析找到的,并解決問題

EG:

/*
-------------------------------------------------------
引起數(shù)據(jù)庫(kù)死鎖的是: 71進(jìn)程號(hào),其執(zhí)行的SQL語(yǔ)法如下

EventType     Parameters EventInfo                          
-------------- ---------- ------------------------------------------------
Language Event 0      
select * from test
insert test values(1,2)


(所影響的行數(shù)為 1 行)

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。
                                                   
------------------------------------------------------------------------------
進(jìn)程號(hào)SPID:64被進(jìn)程號(hào)SPID:71阻塞,其當(dāng)前進(jìn)程執(zhí)行的SQL語(yǔ)法如下

EventType     Parameters EventInfo                          
-------------- ---------- ------------------------------------------------
Language Event 0      
select * from test
insert test values(1,2)


(所影響的行數(shù)為 1 行)

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。
                                                   
------------------------------------------------------------------------------
進(jìn)程號(hào)SPID:65被進(jìn)程號(hào)SPID:64阻塞,其當(dāng)前進(jìn)程執(zhí)行的SQL語(yǔ)法如下

EventType     Parameters EventInfo                                                            
-------------- ---------- --------------------------------------------------------------------------------------------------
Language Event 0       begin tran
select * from test with (holdlock)
waitfor time '12:00'
select * from test
commit

(所影響的行數(shù)為 1 行)

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。
                                                   
------------------------------------------------------------------------------
進(jìn)程號(hào)SPID:73被進(jìn)程號(hào)SPID:64阻塞,其當(dāng)前進(jìn)程執(zhí)行的SQL語(yǔ)法如下

EventType     Parameters EventInfo                                                            
-------------- ---------- --------------------------------------------------------------------------------------------------
Language Event 0       begin tran
select * from test with (holdlock)
waitfor time '12:00'
select * from test
commit

(所影響的行數(shù)為 1 行)

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。*/

關(guān)鍵字:sql server、數(shù)據(jù)庫(kù)、客戶端

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站