oracle授权v$lock,Oracle八大性能视图之v$lock
SQL> desc v$lock;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ADDR RAW(8)
KADDR RAW(8)
SID NUMBER
TYPE VARCHAR2(2)
ID1 NUMBER
ID2 NUMBER
LMODE NUMBER
REQUEST NUMBER
CTIME NUMBER
BLOCK NUMBER
锁的分类:
0、无
1、NULL,可以某些情况下,如分布式数据库的查询会产生此锁。
2、SS,表结构共享锁
3、SX,表结构共享锁+被操作的记录的排它锁
4、S, 表结构共享锁+所有记录共享锁
5、SRX 表结构共享锁+所有记录排它锁
6、X 表结构排它锁+所有记录排它锁
表上的5种锁的含义:
RS(SS):是一种纯粹的意向锁,它表征事务要通过SELECT FOR UPDATE访问某些行;
RX(SX):是一种纯粹的意向锁,它表征事务要通过 UPDATE/ DELETE/INSERT修改某些行;
S:全表范围的共享锁,不需要在每行上做出标识;
X:全表范围的排它锁,不需要在每行上做出标识;
SRX(SSX):是意向锁RX与S锁的组合,它表征事务既对表加S锁,同时要修改个别行,即要在个别行上加X锁;(如果你使用ORACLE8,可以在一个表上建立一个自引用,如EMP表上的MGR引用EMPNO,删除一条记录,可以观察到SRX锁)
在行上,ORALCE只有X锁,
但由SELECT FOR UPDATE 获得的X锁在表级表征为RS锁,
由INSERT/UPDATE/DELETE 获得的X锁在表级表征为RX锁,
窗口1:
SQL> conn myfmis/myfmis
已连接。
SQL> update xtdwcs set MC='单位本部ok' where dh='0114';
窗口2:
SQL> conn myfmis/myfmis
已连接。
SQL> update xtdwcs set MC=单位本部ok' where dh='0114';
处理过程:
查看是否有session阻塞:
select * from v$lock where BLOCK=1
ADDR KADDR SID TYPE ID1 ID2 LMODE REQUEST CTIME BLOCK
1 1FE0C654 1FE0C770 151 TX 131115 520 6 0 669 1
查看TX锁的SID与Serial#:
select * from v$session where event like'%TX%';
select sid,serial#,username,state,blocking_session_status,blocking_session from v$session where event like'%TX%';
SID SERIAL# USERNAME STATE BLOCKING_SESSION_STATUS BLOCKING_SESSION
1 137 6 FMISMAIN WAITING VALID 150
临时KILL这个session:
分两类,
第一:kill掉137,6,则是kill掉之后被等的session。
alter system kill session '137,6';
第二:kill掉150,则是kill掉之前阻塞别人的session。
因此通过前面的137,6所查到的SQL语句,则是后面运行被等待的SQL语句,而不是阻塞别人的SQL语句。
如果要查找原因,操作如下:
查找相应的SQL语句:
select a.sql_text from v$sqlarea a,v$session b where a.sql_id=b.sql_id
select a.sql_text from v$sqlarea a,v$session b where a.sql_id=b.sql_id and b.event like'%TX%'
SQL_TEXT
1 update xtdwcs set MC='单位本部ok' where dh='0114'
select * from v$sqlarea where SQL_ID='gf1472pj5wnzj'
找出相应的SQL语句后,即可处理。
#######################################################################
在巡检期间,检查如果发现有相关的session_wait锁,可按以下步骤查找相应的锁
1. 使用V$LOCK找出session持有的锁。
2. 使用V$SESSION找出持有锁或等待锁的session执行的sql语句。
3. 使用V$SESSION_WAIT找出什么原因导致session持有锁堵塞。
4. 使用V$SESSION获取关于持有锁的程序和用户的更多信息。
V$LOCK中的常用列
? SID:表示持有锁的会话信息。
? TYPE:表示锁的类型。值包括TM和TX等。
? LMODE:表示会话等待的锁模式的信息。用数字0-6表示,和表1相对应。
? REQUEST:表示session请求的锁模式的信息。
? ID1,ID2:表示锁的对象标识。
1、查看相应的v$session_wait信息
select event,count(*) from V$SESSION_WAIT group by event order by count(*) desc;
select event,count(*) from V$SESSION_WAIT group by event order by count(*) asc;
如果如下(第3条):
EVENT COUNT(*)
1 smon timer 1
2 Streams AQ: qmn coordinator idle wait 1
3 enq: TX - row lock contention 1
4 jobq slave wait 1
5 Streams AQ: waiting for time management or cleanup tasks 1
6 pmon timer 1
7 Streams AQ: qmn slave idle wait 1
8 SQL*Net message from client 3
9 rdbms ipc message 9
查看当前被锁的session正在执行的sql语句
select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ a.username, a.machine, a.sid, a.serial#, a.last_call_et "Seconds", b.id1, c.sql_text "SQL"
from v$session a, v$lock b, v$sqltext c
where a.username is not null and a.lockwait = b.kaddr and c.hash_value =a.sql_hash_value
oracle授权v$lock,Oracle八大性能视图之v$lock相关推荐
- Oracle八大性能视图之v$sort_usage_temp
1.表结构 SQL> desc v$sort_usage 名称 是否为空? 类型 ------------------- ...
- Oracle八大性能视图之v$transaction
1.表结构 SQL> desc v$transaction; 名称 是否为空? 类型 ----------------- ...
- oracle授权同义词权限,Oracle授权 同义词
语法结构:授权 GRANT 角色|权限 TO 用户(角色) 代码演示:授权 SQL> GRANT CONNECT TO jerry; 授权成功. SQL> GRANT RESOURCE ...
- oracle授权只读用户,Oracle创建只读用户(账号)的方法
第一步:创建用户(需要使用有dba管理员权限的用户创建一个新的用户,比如system) create user 用户名 identified by 密码 default tablespace 表空间; ...
- Oracle授权允许远程访问--Oracle配置允许远程连接
团队协作开发时,经常使用一个oracle服务器.这就需要配置Oracle服务支持远程连接.否则除了本机,网内的其他机器是无法访问Orcale数据库的. 本文介绍如何配置Oracle允许远程连接. 1. ...
- Oracle 动态性能视图 (x$, v$, gv$, v_$, gv_$)
sys : x$(内存对象))--->v$(内存对象)---->v_$(view)----->v$(public sysnonym) 一. 动态性能视图 1.1 动态性能图 动态性 ...
- oracle 条件动态视图,oracle最重要的9个动态性能视图
oracle最重要的9个动态性能视图 v$session v$session_wait (在10g里功能被整合,凑合算1个吧.) v$process v$sql v$sqltext v$bh (更宁愿 ...
- ORACLE常用的动态性能视图
V$FIXED_TABLE用于列出所有可用的动态性能视图和动态性能表. V$INSTANCE用于获取当前例程的详细信息. V$SGA用于取得SGA更详细的信息. V$PARAMETER用于取得初始化参 ...
- Oracle 原理 : 动态性能视图和数据字典
Oracle 的数据字典包含了两部分:数据字典表和数据字典视图.数据字典基本表是由$ORACLE_HOME\RDBMS\ADMIN\sql.bsq这文件所创建.表名大多以$结尾,属于sys用户,放在S ...
最新文章
- JSP中base href=%=basePath%作用
- semantic ui要装什么才能使用
- matlab 从 excel读取 日期_MATLAB批量修改文件名和选择性复制/剪切文件
- 可是笑声太响了的64391111
- 纯css 无视宽高设置垂直水平居中
- 剑指 Offer II 108. 单词演变
- 2009年IT行业最重要的十大认证
- 服务器安装动易组件,动易SiteWeaver6.8安装方法
- 用几何语言表示线段ab的中点c,七年级上册数学第四章教案
- 物联网期末大作业—睡眠质量检测系统(精修版)
- 技术圈大佬,带你用技术赚到副业的第一桶金!
- Julia1.4文档 —— 2. Julia的基本数值类型
- Hark的数据结构与算法练习之冒泡排序
- Python全栈开发【基础-09】深浅拷贝+while循环
- 体育赛事直播系统的实践之路
- BP神经网络的Java实现
- 有苦有乐的算法 --- 计数排序
- 基于微信运动场地预约小程序 毕业设计毕业论文 开题报告和效果图(基于微信小程序毕业设计题目选题课题)
- 《Python语言程序设计》王恺 王志 机械工业出版社 第二章 Python的基础语法 课后习题答案
- 网络安全与网站安全及计算机安全:如何使用Kali Linux进行内网或局域网安全演练?
热门文章
- python-jenkins 操作
- MVC (jsp + servlet + javabean) 以及jdbc
- Win8Metro(C#)数字图像处理--2.7图像伪彩色
- 2017-10-湖南套题1
- window自动备件软件
- 第十四章----面向对象equals和toString的重写
- LeetCode——Maximum Depth of Binary Tree
- The source attachment does not contain the source for the file ActionSupport.class 错误
- PHP合并2个数字键数组的值
- Codeforces Round #295 (Div. 1) C. Pluses everywhere