當前位置:首頁 » 編程語言 » sqlserverwho

sqlserverwho

發布時間: 2023-09-08 05:53:34

sqlserver怎麼清除死鎖

1、首先需要判斷是哪個用戶鎖住了哪張表.

查詢被鎖表

selectrequest_session_idspid,OBJECT_NAME(resource_associated_entity_id)tableName
fromsys.dm_tran_lockswhereresource_type='OBJECT'

查詢後會返回一個包含spid和tableName列的表.

其中spid是進程名,tableName是表名.

2.了解到了究竟是哪個進程鎖了哪張表後,需要通過進程找到鎖表的主機.

查詢主機名

execsp_who2'xxx'

xxx就是spid列的進程,檢索後會列出很多信息,其中就包含主機名.

3.通過spid列的值進行關閉進程.

關閉進程

declare@spidint
Set@spid=xxx--鎖表進程
declare@sqlvarchar(1000)
set@sql='kill'+cast(@spidasvarchar)
exec(@sql)

PS:有些時候強行殺掉進程是比較危險的,所以最好可以找到執行進程的主機,在該機器上關閉進程.

Ⅱ sql server 如何獲取當前操作的資料庫

1、首先我們打開電腦里的sql server軟體。

Ⅲ sqlserver怎麼查看哪些地方連接資料庫了

1、通過系統的「性能」來查看:
開始->管理工具->性能(或者是運行裡面輸入
mmc)然後通過
添加計數器添加
SQL
的常用統計
然後在下面列出的項目裡面選擇用戶連接就可以時時查詢到sql
server資料庫連接數了。
不過此方法的話需要有訪問那台計算機的許可權,就是要通過windows賬戶登陸進去才可以添加此計數器。
2、通過系統表來查詢:
SELECT
*
FROM
[Master].[dbo].[SYSPROCESSES]
WHERE
[DBID]
IN
(
SELECT
[DBID]
FROM
[Master].[dbo].[SYSDATABASES]
WHERE
NAME='databaseName'
)
databaseName
是需要查看的資料庫,然後查詢出來的行數,就是當前的sql
server資料庫連接數。不過裡面還有一些別的狀態可以做參考用。
3、通過系統過程來查詢:
SP_WHO
'loginName'
loginName
是當然登陸Sql的用戶名,一般程序裡面都會使用一個username來登陸SQL這樣通過這個用戶名就能查看到此用戶名登陸之後佔用的連接了。
如果不寫loginName,那麼返回的就是所有的sql
server資料庫連接。

熱點內容
vc6編譯操作 發布:2025-08-20 23:16:14 瀏覽:869
時統伺服器搭建 發布:2025-08-20 23:15:58 瀏覽:907
c語言單字元 發布:2025-08-20 23:15:12 瀏覽:70
outlook發送伺服器地址在哪裡 發布:2025-08-20 23:06:13 瀏覽:1000
c語言培訓心得 發布:2025-08-20 23:02:20 瀏覽:46
如何打開raw伺服器鏡像 發布:2025-08-20 22:48:13 瀏覽:76
1分鍾造解壓神器 發布:2025-08-20 22:46:28 瀏覽:378
雲伺服器搭建spark 發布:2025-08-20 22:41:19 瀏覽:36
好用免費雲伺服器 發布:2025-08-20 22:16:44 瀏覽:609
傲慢與偏見ftp 發布:2025-08-20 22:11:15 瀏覽:904