锁表查看与解除 --查看锁表情况 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id = o.object_id and l.session_id=s.sid;
锁机制
NOLOCK和READPAST的区别。
1. 开启一个事务执行插入数据的操作。
BEGIN TRAN t
INSERT INTO Customer
SELECT 'a','a'
2. 执行一条查询语句。
SELECT * FROM Customer WITH (NOLOCK)
结果中显示”a”和”a”。当1中事务回滚后,那么a将成为脏数据。(注:1中的事务未提交) 。NOLOCK表明没有对数据表添加共享锁以阻止其它事务对数据表数据的修改。
SELECT
查看被锁表:
select spId
from master..SysProcesses
where db_Name(dbID) = '数据库名称'
and spId SpId
and dbID 0
解除锁:
exec ('Kill '+cast(spid as varchar))
查看被锁表:
select request_session_id spid,OBJECT_NAME(resource_associated_enti
查看被锁表:
select spId
from master..SysProcesses
where db_Name(dbID) = '数据库名称'
and spId SpId
and dbID 0
解除锁:
exec ('Kill '+cast(spid as varchar))
查看被锁表:
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_
在进行数据库管理的过程中,经常会出现数据表被用户的一些不合理操作而导致表被锁定的情况,以下主要介绍如何查找哪些表被哪个用户所锁定,以及如何解除锁定:
1.查找被锁定的表:
select object_name,session_id,os_user_name,oracle_username,process,locked_mode,status
from v$locked_object l, all_objects a
where l.object_id=a.object_id;
如果想