名站网址导航为大家提供关于数据库教程相关的教程网站知识。
解析oracle对select加锁的具体相关方法以及锁的查询
解析oracle对select加锁的具体相关方法以及锁的查询 一、oracle对select加锁具体相关方法,复制具体相关代码 具体相关代码如下:,create table test(a number,b number); insert into test values(1,2); insert into test values(3,4); in,复制具体相关代码 具体相关代码如下:,SELECT s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.obj,复制具体相关代码 具体相关代码如下:,select vs.SQL_TEXT,vsess.sid,vsess.SERIAL#,vsess.MAChINE,vsess.OSUSER ,vsess.TERMINAL,vsess.PROGRAM,,2. 查是哪一个SID,通过SID可知道是哪个SESSION. 查V$ACCESS视图: SELECT * FROM V$ACCESS WhERE OWNER='过程的所属用户' AND;,3. 查出SID和SERIAL# 查V$SESSION视图: SELECT SID,SERIAL#,PADDR FROM V$SESSION WhERE SID='刚才查到的SID',查V$PROCESS视图: SELECT SPID FROM V$PROCESS WhERE ADDR='刚才查到的PADDR';,4. 杀进程 (1).先杀ORACLE进程: ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';,(2).再杀操作办法系统进程: KILL -9 刚才查出的SPID 或 ORAKILL 刚才查出的SID 刚才查出的SPID 六、查找最耗费系统资源的SQL,复制具体相关代码 具体相关代码如下:,--CPU select b.sql_text, a.buffer_gets, a.executions, a.buffer_gets/decode(a.executions , 0 , 1 , a.,复制具体相关代码 具体相关代码如下:,--IO select b.sql_text, a.disk_reads, a.executions, a.disk_reads/decode(a.executions , 0 , 1 , a.exe,复制具体相关代码 具体相关代码如下:,select s.sid,s.value "CPU Used" from v$sesstat s,v$statname n where s.statistic#=n.statistic# and n.,
可在PL/SQL中用如下SQL数据库语句来查询当前网站数据库中哪些表被锁住了,并且是哪些用户来锁的这些表:
SELECT
A.OWNER, --OBJECT所属用户
A.OBJECT_NAME, --OBJECT名称(表名)
B.XIDUSN,
B.XIDSLOT,
B.XIDSQN,
B.SESSION_ID, --锁表用户的session
B.ORACLE_USERNAME, --锁表用户的Oracle用户名
B.OS_USER_NAME, --锁表用户的操作办法系统登陆用户名
B.PROCESS,
B.LOCKED_MODE,
C.MAChINE, --锁表用户的计算机名称(例如:WORKGROUP\UserName)
C.STATUS, --锁表状态
C.SERVER,
C.SID,
C.SERIAL#,
C.PROGRAM --锁表用户所用的网站数据库管理相关工具(例如:ob9.exe)
FROM
ALL_OBJECTS A,
V$LOCKED_OBJECT B,
SYS.GV_$SESSION C
WhERE
A.OBJECT_ID = B.OBJECT_ID
AND B.PROCESS = C.PROCESS
ORDER BY 1,2 同时可用如下开始执行命令来kill掉当前锁表的项:
alter system kill session 'sid, serial#'
--例如:alter system kill session '57, 10325