---查看是否有锁表
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 登录数据库时间/*,
S.SQL_EXEC_START*/
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial#;
-------------------------------------------------
--3)根据sid查看对应连接正在运行的sql
select /*+ PUSH_SUBQ */
command_type,
sql_text,
T.SQL_FULLTEXT,
sharable_mem,
persistent_mem,
runtime_mem,
sorts,
version_count,
loaded_versions,
open_versions,
users_opening,
executions,
users_executing,
loads,
first_load_time,
invalidations,
parse_calls,
disk_reads,
buffer_gets,
rows_processed,
sysdate start_time,
sysdate finish_time,
'>' || address sql_address,
'N' status
from v$sqlarea T
where address =
(select sql_address
from v$session
where sid = 1250)
;
本文提供Oracle数据库中检查锁定情况的方法,通过SQL查询展示如何查看锁定的会话及对象,进一步诊断潜在的死锁问题。同时,介绍如何根据会话ID(SID)追踪并分析正在进行的SQL语句,帮助DBA快速定位并解决数据库性能瓶颈。
2403

被折叠的 条评论
为什么被折叠?



