v$session及v$process视图涉及的相关会话信息的查询

关于服务器进程与用户进程概念及v$session/V$PROCESS视图简介 ,详见:http://blog.csdn.net/q947817003/article/details/16922457
本文根据性能分析的一般思路来进行:
先看OS资源,确定CPU/内存消耗最多的进程,从进程找到会话,再查看会话详细信息:包括会话类型、执行的SQL等等。
各种查询

1.查当前会话SID

BYS@ bys3>select sid from v$mystat where rownum=1;
      SID
----------
       44
查询当前数据库有哪些会话,有哪些用户,从哪些终端连接的
select username,machine,program from v$session where type='USER';  
查询当前数据库内会话的SPID,PID,用户名,客户端主机名,客户端程序

select  b.spid,a.sid,a.username,a.program,a.machine  from v$session a,v$process b where a.paddr=b.addr and a.type='USER';

查询当前数据库内会话的SPID,PID,用户名,客户端主机名,客户端程序以及用户会话是活动的--正在执行SQL或被阻塞

select  b.spid,a.sid,a.username,a.program,a.machine  from v$session a,v$process b where a.paddr=b.addr and a.type='USER'  and  a.status='ACTIVE';

############################################################################

2.操作系统上查进程PID,以及服务器进程所占用CPU 内在资源。LOCAL=NO表示是通过网络连接。

ps -ef显示的列依次是:1.UID   用户ID  2.PID    进程ID  3.PPID   父进程ID  4.C      CPU占用率  5.STIME     开始时间  6.TTY       开始此进程的TTY  7.TIME     此进程运行的总时间  8.CMD       命令名
UID        PID  PPID  C STIME TTY          TIME CMD
[oracle@bys3 ~]$ ps -ef|grep LOCAL|grep -v grep   ---查当前有哪些会话进程
oracle   25868     1  0 14:24 ?        00:00:04 oraclebys3 (LOCAL=NO)
oracle   29048 29045  0 18:52 ?        00:00:00 oraclebys3 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
ps aux显示的列依次是:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[oracle@bys3 dbs]$ ps aux|grep LOCAL |grep -v grep
oracle   29313  0.0  2.0 326852 42996 ?        Ss   19:14   0:00 oraclebys3 (LOCAL=NO)
oracle   29392  0.1  1.9 326796 40992 ?        Ss   19:19   0:01 oraclebys3 (LOCAL=NO)
oracle   29550  0.0  1.7 326984 35148 ?        Ss   19:28   0:00 oraclebys3 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
############################################################################

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/storage/

3.通过进程PID查找会话SID及通过会话SID找进程PID语句:

通过进程SPID找会话SID
BYS@ bys3>select s.sid from v$session s,v$process p where s.paddr=p.addr and p.spid=29550;
      SID
----------
       44
通过当前会话SID找进程PID:
BYS@ bys3>select p.spid from v$session s,v$process p where s.paddr=p.addr and s.sid=(select sid from v$mystat where rownum=1);  如果查其它会话SID,直接输入相应SID即可
SPID
------------------------
29550
查询当前会话使用的PGA的大小信息
select p.spid,p.PGA_USED_MEM/1024/1024 MB,p.PGA_ALLOC_MEM/1024/1024 MB,p.PGA_MAX_MEM/1024/1024 MB from v$session s,v$process p where s.paddr=p.addr and s.sid=(select sid from v$mystat where rownum=1);

############################################################################

4.通过会话SID查看会话详细的信息

示例1:查会话使用的ORACEL数据库用户名、此会话最近一次执行的SQL命令(需要通过COMMAND字段的数字查询相应表选出,如这里3是select),当前会话状态是ACTIVE活动的,表示有SQL语句正在执行(SQL正执行或补阻塞),以及当前服务器连接模式(专有还是共享)

BYS@ bys3>col username for a10
BYS@ bys3>select sid,user#,username,command,ownerid,status,server from v$session where sid=44;
      SID      USER# USERNAME      COMMAND    OWNERID STATUS   SERVER
---------- ---------- ---------- ---------- ---------- -------- ---------
       44         32 BYS                 3 2147483644 ACTIVE   DEDICATED
############################################################################

时间: 2024-09-05 04:43:47

v$session及v$process视图涉及的相关会话信息的查询的相关文章

用户/服务器进程的概念及v$session/V$PROCESS视图简介

服务器进程概念: Oracle的服务器进程有Oracle实例自动创建,用来处理连接到实例的客户端进程发出的请求,用户必须通过连接到Oracle的服务器进程来获取数据库中的信息. 对于专用服务器模式(建库时默认),客户端进程和Oracle服务器进程是一一对应的,新增一个服务器进程,大约需要的内存是: AIX 5-10M  :LINUX 3-5M内存--实测是1M多. 而在共享服务器模式下,一个Oracle服务器进程可能同时服务多个客户端进程. 服务器进程主要用来执行下列的任务: 解析.执行客户端提

Oracle中v$session和v$process的使用方法

查看当前session的sid和serial#: SYS@ORCL>select sid,serial#,status from v$session where sid=userenv('sid');     SID    SERIAL# STATUS ---------- ---------- --------      89          3 ACTIVE 查看当前session对应的spid: SYS@ORCL>select spid from v$process p, v$sess

如何解决:xml-关于 XML 视图组成的相关问题

问题描述 关于 XML 视图组成的相关问题 <?xml version=""1.0"" encoding=""utf-8""?><LinearLayout xmlns:android=""http://schemas.android.com/apk/res/android"" android:orientation=""vertical"&

弱引用-ios 与xib视图加载相关的内存管理问题

问题描述 ios 与xib视图加载相关的内存管理问题 在通过xib加载视图的时候,我们遵循一个准侧 那就是顶层视图 我们的成员变量要是强引用 若是非顶层视图,而是顶层视图的子视图,为了防止顶层视图被释放以后,字视图还存在而造成的内存泄漏,我们把这字视图的成员变量定义为弱饮用 现在问题是,在ARC模式下,假如我有个视图控制起ViewController,然后有个UIButton子视图 @interface ViewController:UIViewController {weak/strong I

我在表单中嵌入了一个视图,我怎样才能获取在这个“嵌入视图”中选中文档的信息呢?

问题描述 我在表单中嵌入了一个视图,我怎样才能获取在这个"嵌入视图"中选中文档的信息呢?????????各位大哥哥大姐姐,快點幫幫我吧! 解决方案 解决方案二:你是指怎样取到你在嵌入视图里选取的文档吧,只有将你需要执行的代码移到那个嵌入视图的ActionBar的按钮里面,然后就像在普通视图里的一样用db.unproccesedDcouemnts就可以取到了,默认嵌入视图是不显示ActionBar的,在嵌入视图的属性里设置一下就可以显示了.解决方案三:在主文档取不到嵌入视图的文档信息解决

java.lang.Process清空缓冲区问题,普通信息和错误信息都要能及时清除要怎么弄

问题描述 java.lang.Process清空缓冲区问题,普通信息和错误信息都要能及时清除要怎么弄 方法1:如果有普通信息,就清普通信息,如果没有则判断和清理错误信息,都没有则判断是否已结束 问题:发现如果程序即有普通信息,又有错误信息,会一直清理普通信息,不管错误信息,错误信息多了有可能会导致缓冲区爆掉 while (true) { if (scStdOut.hasNextLine()) { System.out.println(scStdOut.nextLine()); // Standa

PostgreSQL 10.0 preview 功能增强 - 动态视图pg_stat_activity新增数据库管理进程信息

标签 PostgreSQL , 10.0 , pg_stat_activity , 管理进程 , 后台进程 , 工作进程 , 并行计算进程 背景 PostgreSQL为进程模型,启动时.启动后会fork一些管理进程,以及用户连接时会产生用户的服侍进程. 例如 1. postmaster,负责监听 2. startup进程,负责recovery 3. logger, 负责写日志 4. shared buffer writer,负责通过LRU算法刷脏页,持久化数据文件 5. wal buffer w

视图皆可-mysql 通过父级查询所有子级和孙级

问题描述 mysql 通过父级查询所有子级和孙级 现在有一个需求,是根据一级父类(水果蔬菜)查询出所有的子级与孙级(水果,蔬菜,白菜,苹果,红富士),pid为父级的Id,求大神写处一条效率高的sql 解决方案 自己找到了,根据http://blog.csdn.net/acmain_chm/article/details/4142971博主写的存储过程实现 解决方案二: 复选框父级和子级的联动查询父级Hibernate跨级修改子级数据,Hibernate根据父级ID跨级修改子级数据 解决方案三:

深入解析iOS应用开发中九宫格视图布局的相关计算方法_IOS

来看一个简单的例子: 复制代码 代码如下: /*  * 总列数  */ NSUInteger totalloc = 3; /*  * View的宽高  */ CGFloat shopW = 80; CGFloat shopH = 100; /*  * 每个View之间的间隔  */ CGFloat margin = (self.view.frame.size.width - totalloc * shopW) / (totalloc + 1); /*  * View的总个数  */ NSUInt