查询锁事务及语句

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

if exists(select
* from master.sys.sysprocesses where
spid in (select blocked from
master.sys.sysprocesses))

begin

---确定进程被锁住的其他资源

select spid 进程,STATUS 状态, 登录帐号=SUBSTRING(SUSER_SNAME(sid),1,30)

,用户机器名称=SUBSTRING(hostname,1,12)

,是否被锁住=convert(char(3),blocked)

,数据库名称=SUBSTRING(db_name(dbid),1,20),cmd 命令,waittype as
等待类型

,last_batch 最后批处理时间,open_tran 未提交事务的数量

from master.sys.sysprocesses

--列出锁住别人(在别的进程中blocked字段中出现的值)但自己未被锁住(blocked=0)

Where spid in (select blocked from
master.sys.sysprocesses) and
blocked=0

end

else

begin

select
‘没有被锁住的进程‘

end

select
t1.resource_type [资源锁定类型],DB_NAME(resource_database_id) as
数据库名

,t1.resource_associated_entity_id 锁定对象,t1.request_mode as
等待者请求的锁定模式

,t1.request_session_id 等待者SID

,t2.wait_duration_ms 等待时间

,(select
TEXT from sys.dm_exec_requests r cross
apply

sys.dm_exec_sql_text(r.sql_handle) where
r.session_id=t1.request_session_id) as
等待者要执行的SQL

,(select
SUBSTRING(qt.text,r.statement_start_offset/2+1,

(case
when r.statement_end_offset=-1 then
DATALENGTH(qt.text) else
r.statement_end_offset end
-r.statement_start_offset)/2+1

)

from sys.dm_exec_requests r cross
apply sys.dm_exec_sql_text(r.sql_handle)qt

where r.session_id=t1.request_session_id) 等待者正要执行的语句

,t2.blocking_session_id [锁定者SID]

,(select
TEXT from sys.sysprocesses p cross
apply

sys.dm_exec_sql_text(p.sql_handle)

where p.spid=t2.blocking_session_id

) 锁定者执行语句

from sys.dm_tran_locks t1,sys.dm_os_waiting_tasks t2

where t1.lock_owner_address=t2.resource_address

  

时间: 2024-10-29 00:10:36

查询锁事务及语句的相关文章

mysql 查询锁,解锁语句

一:锁表: 锁定数据表,避免在备份过程中,表被更新 mysql>LOCK TABLES tbl_name READ; 为表增加一个写锁定: mysql>LOCK TABLES tbl_name WRITE; 二:查询mysql 哪些表正在被锁状态 show OPEN TABLES where In_use > 0; 三:mysql解锁 第一种 show processlist; 找到锁进程,kill id ; 第二种 mysql>UNLOCK TABLES;

oracle查询锁表解锁语句 (转)

原文地址:http://blog.csdn.net/zhldt2008/article/details/7953932 1. 如下语句 查询锁定的表: SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username, l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time FROM v$locked_object l, all_objects o,

oracle数据库查询锁表与解锁语句

今天要删除一个失效的物化视图的时候:老是删除不掉:经理说是锁表了:然后百度了一下 下面是 查询 锁表 和 如何解锁 --查询现在的锁SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username, l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time FROM v$locked_object l, all_objects o, v$session

查询mysql事务隔离级别

查询mysql事务隔离级别 查询mysql事务隔离级别 分类: DB2011-11-26 13:12 2517人阅读 评论(0) 收藏 举报 mysqlsessionjava 1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transaction isolatin level repeatable read; 4.设置系统当前隔离级别 s

sql server中的锁 事务锁 更新锁 保持锁 共享锁 你知道吗?

锁定数据库的一个表 SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除 SELECT 语句中"加锁选项"的功能说明 SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能.用户既能使用SQL Ser

day15(mysql 的多表查询,事务)

mysql之多表查询 1.合并结果集 作用:合并结果集就是把两个select语句查询的结果连接到一起! /*创建表t1*/ CREATE TABLE t1( a INT PRIMARY KEY , b VARCHAR(10) ) INSERT INTO t1 VALUES(1,'a'); INSERT INTO t1 VALUES(2,'b'); INSERT INTO t1 VALUES(3,'c'); /*创建t2*/ CREATE TABLE t2( c INT PRIMARY KEY ,

检查Oracle 中死事务的语句

SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2 KTUXESTA Status, KTUXECFL Flags ,KTUXESIZ 3 FROM x$ktuxe 4 WHERE ktuxesta!='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ----------------

如何查找MySQL中查询慢的SQL语句

本文导读:如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_

sql锁 事务

1.数据库并发产生的问题.(这里所说的事务就是普通意义的流程,跟数据库的事务不要关联起来) 1)脏读.一个事读取了一个仍然在另一个未提交事务的范畴内的数据.read committed级别可以避免. 2)不可重复读.一个事务中两次相同的查询却返回了不同的数据.这是因为一个事务在读,然后另一个事务修改了数据,这个事务再去读,发现两次数据不一致. 3)幻读.没有锁定所有读取的行. 4)丢失更新. 2.各种锁(解决这些问题). 1)共享锁.用户在读取的时候其他用户可以读取,但是不能修改.select