v$process v$sesson 通过会话号查找进程号 查看会话信息
来源:互联网 发布:windows更新卸载工具 编辑:程序博客网 时间:2024/04/30 20:05
--进程视图
v$process
--会话视图
v$session
v$mystat
v$sql
v$transaction
v$lock
v$transaction.ADDR=v$lock.ADDR
v$lock.SID=v$session.SID
v$session.SQL_ID=v$sql.SQL_ID
v$session.PADDR=v$process.SPID
查看有哪些进程
[oracle@orale ~]$ ps -ef |grep LOCAL |grep -v grep
oracle 4245 4202 0 09:18 ? 00:00:02 oraclemypl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4298 1 0 09:20 ? 00:00:00 oraclemypl (LOCAL=NO)
当连接oracle后会自动分配一个会话号
--查当前会话号
SQL> select distinct sid from v$mystat;
SID
----------
SQL> select a.spid from v$process a ,v$session b where a.addr=b.paddr and b.sid
in (select sid from v$mystat where rownum=1);
SPID
------------------------
SQL> select b.sid from v$process a ,v$session b where a.addr=b.paddr and a.spid=4298;
SID
----------
17
--查看进程占用的CPU内存情况
[oracle@orale ~]$ ps aux|grep 4298
oracle 4298 0.0 2.5 772120 37076 ? Ss 09:20 0:00 oraclemypl (LOCAL=NO)
oracle 8317 0.0 0.0 3920 660 pts/2 R+ 15:04 0:00 grep 4298
[oracle@orale ~]$ ps aux |grep oracle
oracle 4245 0.0 4.8 774612 70128 ? Ss 09:18 0:02 oraclemypl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4248 0.0 1.0 770252 14792 ? Ss 09:18 0:00 ora_qmnc_mypl
oracle 4263 0.0 3.5 773904 51968 ? Ss 09:18 0:08 ora_cjq0_mypl
oracle 4267 0.0 1.8 771808 26480 ? Ss 09:19 0:00 ora_q000_mypl
oracle 4271 0.0 1.0 770248 15628 ? Ss 09:19 0:00 ora_q002_mypl
oracle 4298 0.0 2.5 772120 37076 ? Ss 09:20 0:00 oraclemypl (LOCAL=NO)
root 4332 0.0 0.0 4920 1236 pts/2 S 09:20 0:00 su - oracle
oracle 4333 0.0 0.1 4668 1496 pts/2 S 09:20 0:00 -bash
oracle 4395 0.0 0.9 770252 13860 ? Ss 09:23 0:00 ora_smco_mypl
oracle 5766 0.0 2.6 772112 38864 ? Ss 10:48 0:00 oraclemypl (LOCAL=NO)
oraclemypl (LOCAL=NO)表示用户连上来的 其他的后台进程是查看不了的
例如看到某个进程占用内存CPU很大
--通过进程号查会话号
SQL> select b.sid from v$process a ,v$session b where a.addr=b.paddr and a.spid=4298;
SID
----------
17
--通过会话号查看会话的所有操作
select * from v$session where sid=17;
[oracle@orale ~]$ kill -9 5766 --强制干掉某个进程
v$session.lockwait = v$lock.kaddr
字段 STATUS ACTIVE活跃 表示sql正在执行或被阻塞 等待-锁 (没有commit)
字段TADDR 事务/锁的地址 = v$transaction.addr = v$lock.addr v$tran 如果有值就有事务
字段SQL_ID 如果有值要么SQL正在执行,要么被阻塞了 肯定是ACTIVE状态
利用v$session.SQL_ID 可以找出被阻塞的语句
select sql_text from v$sql where sql_id ='';
select a.SQL_TEXT from v$sql a ,v$session b where a.SQL_ID=b.SQL_ID;
字段ROW_WAIT_OBJ# dba_objects.object_id= 通过对象ID可以找出表名
字段BLOCKING_SESSION_STATUS 阻塞状态 VALID 表示被阻塞了
字段BLOCKING_SESSION 被哪个会话阻塞了 (没有commit的会话)
字段STATE 等待事件 enq: TX - row lock contention 行锁争用(两个对话同时执行同一行
知道是被哪个会话阻塞了就好办了
SQL> select sid,serial# from v$session where sid=35;
SID SERIAL#
---------- ----------
SQL> alter system kill session '35,45';
System altered.
v$process
--会话视图
v$session
v$mystat
v$sql
v$transaction
v$lock
v$transaction.ADDR=v$lock.ADDR
v$lock.SID=v$session.SID
v$session.SQL_ID=v$sql.SQL_ID
v$session.PADDR=v$process.SPID
查看有哪些进程
[oracle@orale ~]$ ps -ef |grep LOCAL |grep -v grep
oracle 4245 4202 0 09:18 ? 00:00:02 oraclemypl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4298 1 0 09:20 ? 00:00:00 oraclemypl (LOCAL=NO)
当连接oracle后会自动分配一个会话号
--查当前会话号
SQL> select distinct sid from v$mystat;
SID
----------
17
SQL> select a.spid from v$process a ,v$session b where a.addr=b.paddr and b.sid
in (select sid from v$mystat where rownum=1);
SPID
------------------------
4298
SQL> select b.sid from v$process a ,v$session b where a.addr=b.paddr and a.spid=4298;
SID
----------
17
--查看进程占用的CPU内存情况
[oracle@orale ~]$ ps aux|grep 4298
oracle 4298 0.0 2.5 772120 37076 ? Ss 09:20 0:00 oraclemypl (LOCAL=NO)
oracle 8317 0.0 0.0 3920 660 pts/2 R+ 15:04 0:00 grep 4298
[oracle@orale ~]$ ps aux |grep oracle
oracle 4245 0.0 4.8 774612 70128 ? Ss 09:18 0:02 oraclemypl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4248 0.0 1.0 770252 14792 ? Ss 09:18 0:00 ora_qmnc_mypl
oracle 4263 0.0 3.5 773904 51968 ? Ss 09:18 0:08 ora_cjq0_mypl
oracle 4267 0.0 1.8 771808 26480 ? Ss 09:19 0:00 ora_q000_mypl
oracle 4271 0.0 1.0 770248 15628 ? Ss 09:19 0:00 ora_q002_mypl
oracle 4298 0.0 2.5 772120 37076 ? Ss 09:20 0:00 oraclemypl (LOCAL=NO)
root 4332 0.0 0.0 4920 1236 pts/2 S 09:20 0:00 su - oracle
oracle 4333 0.0 0.1 4668 1496 pts/2 S 09:20 0:00 -bash
oracle 4395 0.0 0.9 770252 13860 ? Ss 09:23 0:00 ora_smco_mypl
oracle 5766 0.0 2.6 772112 38864 ? Ss 10:48 0:00 oraclemypl (LOCAL=NO)
oraclemypl (LOCAL=NO)表示用户连上来的 其他的后台进程是查看不了的
例如看到某个进程占用内存CPU很大
--通过进程号查会话号
SQL> select b.sid from v$process a ,v$session b where a.addr=b.paddr and a.spid=4298;
SID
----------
17
--通过会话号查看会话的所有操作
select * from v$session where sid=17;
[oracle@orale ~]$ kill -9 5766 --强制干掉某个进程
v$session 视图一些重要的字段
v$session.TADDR = v$transaction.addr = v$lock.addrv$session.lockwait = v$lock.kaddr
字段 STATUS ACTIVE活跃 表示sql正在执行或被阻塞 等待-锁 (没有commit)
字段TADDR 事务/锁的地址 = v$transaction.addr = v$lock.addr v$tran 如果有值就有事务
字段SQL_ID 如果有值要么SQL正在执行,要么被阻塞了 肯定是ACTIVE状态
利用v$session.SQL_ID 可以找出被阻塞的语句
select sql_text from v$sql where sql_id ='';
select a.SQL_TEXT from v$sql a ,v$session b where a.SQL_ID=b.SQL_ID;
字段ROW_WAIT_OBJ# dba_objects.object_id= 通过对象ID可以找出表名
字段BLOCKING_SESSION_STATUS 阻塞状态 VALID 表示被阻塞了
字段BLOCKING_SESSION 被哪个会话阻塞了 (没有commit的会话)
字段STATE 等待事件 enq: TX - row lock contention 行锁争用(两个对话同时执行同一行
知道是被哪个会话阻塞了就好办了
SQL> select sid,serial# from v$session where sid=35;
SID SERIAL#
---------- ----------
35 45
select * from v$transaction;
--确认后执行下面的语句就可以干掉SQL> alter system kill session '35,45';
System altered.
- v$process v$sesson 通过会话号查找进程号 查看会话信息
- v$session/v$process视图涉及的相关会话信息的查询
- v$session/v$process视图涉及的相关会话信息的查询
- 关于v$session 和v$process 如何杀掉session(会话),以及如何找到会话对应的系统进程ID
- 系统和会话统计信息(v$sysstat v$sesstat)
- 通过v$bgprocess查看后台进程
- 查看会话信息
- oracle 查看会话进程
- 常用的会话相关v$视图
- 当前会话状态(v$session)
- v$session_event- Oracle Wait Interface Memo查看当前会话所有信息(转:http://www.dbanotes.net/archives/2004/12/vsession_event.html)
- v$session——记录数据库当前会话的阻塞、等待信息!
- 查看活动事务,会话信息
- ASH的信息通过视图v$active_session_history查看
- v$process v$session
- V$PROCESS
- V$PROCESS
- linux通过进程号查看进程信息
- HTTP协议/IIS 原理及ASP.NET运行机制浅析
- 皮尔逊相关系数(Pearson Correlation Coefficient)理解
- poj3211(分组背包。。。大概)
- Lua 代码编辑器 Sublime Text2 介绍、常用功能、快捷键
- MapKit学习笔记及源码分享
- v$process v$sesson 通过会话号查找进程号 查看会话信息
- crack the code interview 1.5
- Core Location定位和MapKit视图使用
- 临时解决ubuntu解压windows生成的zip文件时乱码问题
- 如何快速掌握一门编程语言?
- 关于观察者模式的一些问题
- 数据库基本操作
- C#ArrayList简单应用
- 如何快速掌握一门编程语言?