#查看当前不为空的连接
select * from v$session where username is not null

#查看不同用户的连接数

select username,count(username) from v$session where username is not null group by username

#连接数

select count(*) from v$session

#并发连接数

Select count(*) from v$session where status='ACTIVE' 

#最大连接

show parameter processes

#修改连接

alter system set processes = value scope = spfile

#查询锁表
select a.owner,
       a.object_name,
       a.subobject_name,
       a.object_type,
       l.session_id,
       l.oracle_username,
       l.os_user_name,
       se.SID,
       se.SERIAL#
  from  all_objects a, gv$locked_object l,V$session se
where a.object_id = l.object_id
       and se.OSUSER = l.os_user_name
       and l.oracle_username = 'username'; 
 
#杀掉某session     
 Alter system kill session 'SID,SERIAL#'

#v$session字段说明

SADDR: session address

SID: session identifier,常用于连接其它列。

SERIAL#: sid 会重用,但是同一个sid被重用时,serial#会增加,不会重复。

AUDSID: audit session id。可以通过audsid查询当前session的sid。

select sid from gv$session where audsid=userenv('sessionid');

PADDR: process address,关联v$process的addr字段,可以通过这个字段查处当前session对应操作系统的那个进程的id。

USER#: session's user id。等于dba_users中的user_id。Oracle内部进程的user#为0。

USERNAME: session's username。等于dba_users中的username。Oracle内部进程的username为空。

COMMAND: session正在执行的SQL Id。1代表create table,3代表select。

TADDR: 当前的transaction address。可以用来关联v$transaction的addr字段。

LOCKWAIT: 可以通过这个字段查询出当前正在等待的锁的相关信息。sid & lockwait与v$lock中的sid & kaddr相对应。

STATUS: 用来判断session状态。Active:正执行SQL语句。Inactive:等待操作。Killed:被标注为删除。

SERVER: server type (dedicated or shared)

SCHEMA#: schema user id。Oracle内部进程的schema#为0。

SCHEMANAME: schema username。Oracle内部进程的schemaname为sys。

OSUSER: 客户端操作系统用户名。

PROCESS: 客户端process id。

MACHINE: 客户端machine name。

TERMINAL: 客户端执行的terminal name。

PROGRAM: 客户端应用程序。比如ORACLE.EXE (PMON)或者sqlplus.exe

TYPE: session type (background or user)

SQL_ADDRESS, SQL_HASH_VALUE, SQL_ID, SQL_CHILD_NUMBER: session正在执行的sql statement,和v$sql中的address, hash_value, sql_id, child_number相对应。

PREV_SQL_ADDR, PREV_HASH_VALUE, PREV_SQL_ID, PREV_CHILD_NUMBER: 上一次执行的sql statement。

MODULE, MODULE_HASH, ACTION, ACTION_HASH, CLIENT_INFO: 应用通过DBMS_APPLICATION_INFO设置的一些信息。

FIXED_TABLE_SEQUENCE: 当session完成一个user call后就会增加的一个数值,也就是说,如果session inactive,它就不会增加。因此可以根据此字段的值变化来监控某个时间点以来的session的性能情况。例如,一个小时以前,某个session 的FIXED_TABLE_SEQUENCE是10000,而现在是20000,则表明一个小时内其user call比较频繁,可以重点关注此session的performance statistics。

ROW_WAIT_OBJ#: 被锁定行所在table的object_id。和dba_objects中的object_id关联可以得到被锁定的table name。

ROW_WAIT_FILE#: 被锁定行所在的datafile id。和v$datafile中的file#关联可以得到datafile name。

ROW_WAIT_BLOCK#: Identifier for the block containing the row specified in ROW_WAIT_ROW#

ROW_WAIT_ROW#: session当前正在等待的被锁定的行。

LOGON_TIME: session logon time

v$process字段详解

ADDR: process address。可以和v$session的paddr字段关联。

PID: Oracle进程identifier。

SPID: 操作系统进程identifier。

USERNAME: 操作系统进程的用户名。并非Oracle用户名。

SERIAL#:: process serial number。

TERMINAL: 操作系统terminal identifier(e.g., computer name)。

PROGRAM: 进程正在执行的程序(e.g., ORACLE.EXE (ARC0)),和v$session中的program类似。

BACKGROUND: 1代表oracle background process,null代表normal process。

查看当前用户的sid和serial#:
select sid, serial#, status from v$session where audsid=userenv('sessionid');

查看当前用户的spid:
select spid from v$process p, v$session s where s.audsid=userenv('sessionid') and s.paddr=p.addr;
select spid from v$process p join v$session s on p.addr=s.paddr and s.audsid=userenv('sessionid');

查看当前用户的trace file路径:
select p.value || '/' || t.instance || '_ora_' || ltrim(to_char(p.spid,'fm99999')) || '.trc'
 from v$process p, v$session s, v$parameter p, v$thread t
 where p.addr = s.paddr and s.audsid = userenv('sessionid') and p.name = 'user_dump_dest';

已知spid,查看当前正在执行或最近一次执行的语句:
select /*+ ordered */ sql_text from v$sqltext sql
 where (sql.hash_value, sql.address) in (
   select decode(sql_hash_value, 0, prev_hash_value, sql_hash_value), decode(sql_hash_value, 0, prev_sql_addr, sql_address)
   from v$session s where s.paddr = (select addr from v$process p where p.spid = to_number('&pid')))
 order by piece asc;

查看锁和等待:
col user_name format a10
col owner format a10
col object_name format a15
col sid format 999999
col serial# format 999999
col spid format a6
select /*+ rule */ lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username user_name,
 o.owner, o.object_name, o.object_type, s.sid, s.serial#, p.spid
 from v$locked_object l, dba_objects o, v$session s, v$process p
 where l.object_id = o.object_id and l.session_id = s.sid and s.paddr = p.addr
 order by o.object_id, xidusn desc;

【ORACLE】ORACLE session(会话)管理的更多相关文章

  1. session会话管理

    session会话和cookie一起被称为会话跟踪技术,主要通过保存在服务器端的session数据和客户端浏览器的cookie数据共同完成用户访问服务器的足迹记录. 1. 什么是会话 会话sessio ...

  2. .net用SQL Server进行session会话管理

    保存在内存中的session经常由于dll的变动导致丢失.有一种方法可以长期保存session,那就是session的SqlServer模式. ASP.NET允许将会话数据存储到一个数据库服务器中,方 ...

  3. 第二章 Session会话管理

    采用网址重写的缺点: 在有些Web浏览器中,URL限制为2000个字符. 仅当有链接要插入值时,值才能转换成后面的资源.此外,要把值添加到静态页面的链接中,可不是一件容易的事情. 网址重写必须在服务器 ...

  4. JavaWeb中Session会话管理,理解Http无状态处理机制

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512955067434271246/ 1.<Servlet简单实现开发部署过程> 2.<Serv ...

  5. session会话管理,与过滤器使用,访问控制

    1 用户登录,是否注册用户,在登录处理页面进行用户验证,创建session保存用户名和密码 2否,进入用户注册页面 3是,系统保存该用户的登录信息 4进入要访问的页面 5用户直接访问某个页面, 6系统 ...

  6. 4.会话管理(Session)

    1.会话管理的概念和基本原理: 会话管理概念: 会话的实现过程: 2.使用Cookie.隐藏域.URL重写实现会话管理 创建并向客户端发送Cookie; 从客户端读取Cookies Cookie的方法 ...

  7. 分布式Tomcat session会话Sticky Sessions问题

    分布式session会话Sticky Sessions - tomcat_baby的专栏 - CSDN博客https://blog.csdn.net/tomcat_baby/article/detai ...

  8. JavaWeb中Cookie会话管理,理解Http无状态处理机制

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512995108961387015/ 1.<Servlet简单实现开发部署过程> 2.<Serv ...

  9. oracle调优 浅析“会话管理开销”

    调优之浅析"会话管理开销"   [简单介绍]        在调优的过程中,对于会话的管理是比較普遍的问题,由于维护会话的开销相对是比較高的. [过程表现例如以下]         ...

  10. SQL Server与Oracle对比学习:权限管理(一)

    http://blog.csdn.net/weiwenhp/article/details/8093661 我们发现我们现在的生活中到处是涉及到密码,你要记各种各样的密码.比如银行卡,邮件,QQ,微博 ...

随机推荐

  1. UVa 1395 Slim Span (最小生成树)

    题意:给定n个结点的图,求最大边的权值减去最小边的权值最小的生成树. 析:这个和最小生成树差不多,从小到大枚举左端点,对于每一个左端点,再枚举右端点,不断更新最小值.挺简单的一个题. #include ...

  2. 从Objective-C到Swift,你必须会的(二)组合options

    用过Options这个东西的人都知道,几个竖线就把这些值都和到一起了.比如: + (NSStringDrawingOptions)combine{ return NSStringDrawingTrun ...

  3. linux数据库备份

    linux数据库备份 服务端启用二进制日志 如果日志没有启开,必须启用binlog,要重启mysql,首先,关闭mysql,打开/etc/my.cnf,加入以下几行: [mysqld] log-bin ...

  4. java程序练习

    数组求和作业 开发环境:java 工具:eclipse 两种数据类型excel和csv 在同学建议下,我选择用csv文件打开,这就引来了第一个问题,在java中如何调用csv文件.以下是我百度的结果 ...

  5. 饿了么 PostgreSQL 优化之旅

    1. 架构演变 在O2O外卖领域,基于位置服务的需求越来越多,这就要求DB能够存储地理位置信息,而在开源数据库中,对空间地理数据支持比较好的要数PG的插件Postgis. 饿了么在使用PG的过程中,由 ...

  6. linux查看占用内存多的进程

    update一个简单的方法 ps aux | sort -k4nr | head -10 ps -e  -o "%C  : %p : %z : %a"|sort -k5 -nr|h ...

  7. 修改Tomcat的jvm的垃圾回收GC方式为CMS

    修改Tomcat的jvm的垃圾回收GC方式 cp $TOMCAT_HOME/bin/catalina.sh $TOMCAT_HOME/bin/catalina.sh.bak_20170815 vi $ ...

  8. WPF 平板上按钮点击不触发,鼠标点击触发的两种解决方法

    今天运行在windows平板上的程序,有个功能是弹出子窗体,点弹出窗体的关闭按钮,要点好几次才能触发.网上找了找,也有人与我类似的情形. 解决方法如下: public static void Disa ...

  9. dockerfile 构建tomcat

    事先下载好tomcat和jdk的二进制包. 下载地址https://pan.baidu.com/s/1kWWHGEV 值得一说的是 tomcat的官方镜像 剪切了很多jdk和系统命令,所以生产环境建议 ...

  10. HTTP调用接口方法

    1.创建接口调用方法类 package cn.com.victorysoft.sjzx.Message; import java.io.BufferedReader; import java.io.I ...