sqlserver鎖表、解鎖、查看銷表的方法
鎖定數據庫的一個表
SELECT * FROM table WITH (HOLDLOCK)
注意: 鎖定數據庫的一個表的區(qū)別
SELECT * FROM table WITH (HOLDLOCK)
其他事務可以讀取表,但不能更新刪除
SELECT * FROM table WITH (TABLOCKX)
其他事務不能讀取表,更新和刪除
SELECT 語句中“加鎖選項”的功能說明
SQL Server提供了強大而完備的鎖機制來幫助實現數據庫系統(tǒng)的并發(fā)性和高性能。用戶既能使用SQL Server的缺省設置也可以在select 語句中使用“加鎖選項”來實現預期的效果。 本文介紹了SELECT語句中的各項“加鎖選項”以及相應的功能說明
查看被鎖表:
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks where resource_type='OBJECT'
spid 鎖表進程
tableName 被鎖表名
[@more@]
解鎖:
創(chuàng)建一個臨時Table
CREATE TABLE #HarveyLock ( SPID INT, DBID INT, OBJID INT, INDID INT, TYPE VARCHAR(100), RESOURCE VARCHAR(100), MODE VARCHAR(100), STATUS VARCHAR(100) )
將Lock信息存入該Table
INSERT INTO #HarveyLock EXEC SP_LOCK
3.在Table中下條件查詢得到的LOCK
SELECT * FROM #HarveyLock
4.KILL 相關LOCK
KILL @SPID
例
declare @spid int Set @spid = 57 --鎖表進程 declare @sql varchar(1000) set @sql='kill '+cast(@spid as varchar) exec(@sql)
相關文章
mssql insert into 和insert into select性能比較
今天沒事,測了一下insert into和insert into select的性能,沒想到這兩個性能差別這么大。2010-03-03ROW_NUMBER SQL Server 2005的LIMIT功能實現(ROW_NUMBER()排序函數)
SQL Server 2005新增了一個ROW_NUMBER()函數,通過它可實現類似MySQL下的LIMIT功能。下面的語法說明摘自SQL Server 2005的幫助文件2012-06-06日常收集整理SqlServer數據庫優(yōu)化經驗和注意事項
本文是小編日常收集整理SqlServer數據庫優(yōu)化經驗和注意事項,詳細介紹了SQL語句優(yōu)化的基本原則,包括索引、查詢和游標的使用等2015-11-11sql中的left join及on、where條件關鍵字的區(qū)別詳解
LEFT JOIN 關鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結果為 NULL。這篇文章主要介紹了sql中的left join以及on、where關鍵字的區(qū)別,需要的朋友可以參考下2018-08-08數據庫性能優(yōu)化一:數據庫自身優(yōu)化提升性能
數據庫自身優(yōu)化包括:增加次數據文件,設置文件自動增長、表分區(qū),索引分區(qū)、分布式數據庫設計、整理數據庫碎片等等.需要了解的朋友可以參考下2013-01-01Sql Server中存儲過程中輸入和輸出參數(簡單實例 一看就懂)
Sql Server中存儲過程中輸入和輸出參數(簡單實例,一看就懂),方便需要的朋友2012-10-10Microsoft SQLServer的版本區(qū)別及選擇
Microsoft SQLServer的版本區(qū)別及選擇...2007-02-02