`

Oracle 查看当前会话 SESSION ID 方法 说明

 
阅读更多

查看当前会话的session ID 有如下三种方法:

1. v$mystat视图

SQL> desc v$mystat

NameNull? Type

------------------------------------------------- --------------

SIDNUMBER

STATISTIC# NUMBER

VALUENUMBER

SQL> select sid from v$mystat where rownum=1;

SID

----------

19

2. 使用userenv(‘sid’) 直接获取

这种方法只能在oracle10g以后可以使用。

SQL> select userenv('sid') from dual;

USERENV('SID')

--------------

19

3. 结合 userenv('sessionid') 与 v$session 视图

userenv('sessionid') 返回的是session audit id.其对应v$session 的audsid字段。

这在之前的blog中有说明。

OracleSYS.AUDSES$ 序列 说明

http://blog.csdn.net/tianlesoftware/article/details/7239890

在session 连接到数据库的时候,会从SYS.AUDSES$序列中获取一个audid 分配给session。

SQL> select sid from v$session where audsid=userenv('sessionid');

SID

----------

19

25

469

--这里返回了3个值,我们直接查看userenv('sessionid') 值:

SQL> select userenv('sessionid') from dual;

USERENV('SESSIONID')

--------------------

4294967295

在之前的AUDSES$的blog中提到:

对于internal用户(’/as sysoper’ 和 ‘/as sysdba’)和后台进程,其对应的AUDID 为0.

在Oracle 10g中,如果AUDID的值为0,表明是internal 用户,如果AUDID 值是4294967295,那么就表明是用SYS 用户直接连接的。

我们这里返回三个结果是把所有SYS 用户的session都返回了,所以这种方法有时的准确性并不高。

-------------------------------------------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

Email: tianlesoftware@gmail.com

Skype: tianlesoftware

Blog: http://www.tianlesoftware.com

Weibo: http://weibo.com/tianlesoftware

Twitter: http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----

DBA1 群:62697716(满); DBA2 群:62697977(满)DBA3 群:62697850(满)

DBA 超级群:63306533(满); DBA4 群:83829929 DBA5群: 142216823

DBA6 群:158654907 DBA7 群:172855474 DBA总群:104207940

分享到:
评论

相关推荐

    Oracle中获取会话信息的两个函数分享

     OPTION=’SESSIONID’为当前会话标识符.   OPTION=’ENTRYID’返回可审计的会话标识符.   OPTION=’LANG’返回会话语言名称的ISO简记.   OPTION=’INSTANCE’返回当前的实例.   OPTION=’terminal’返回...

    oracle查看会话锁定的所有对象代码分享

    代码如下:select session_id sid, owner, name, type, mode_held... 您可能感兴趣的文章:ORACLE 查询被锁住的对象,并结束其会话的方法解析Oracle数据库中的对象集合schemaORACLE 常用的SQL语法和数据对象Oracle使用PL/

    oracle 锁表查询

    先查看哪些表被锁住了 select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid and sid in( select a.SESSION_ID from v$locked_object a,dba_objects b ...

    oracle ORA-00031:session marked for kill(标记要终止的会话)解决方法

    今天碰到一个问题,有一张表不能操作,很可能是被锁了,首先想到的是kill session,于是执行了下列的脚本找到是哪个session有问题: 查看表是否被锁 SELECT /*+ rule*/ a.sid, b.owner, object_name, object_type ...

    ORACLE 查询被锁住的对象,并结束其会话的方法

    1、查找出被锁对象的会话ID和序列号 执行如下SQL: -- 查询出被锁对象,并提供 kill 脚本 SELECT S.SID, S.MACHINE, O.OBJECT_NAME, L.ORACLE_USERNAME, L.LOCKED_MODE, S.OSUSESR, 'ALTER SYSTEM KILL SESSION ''...

    oracle 10g问题总结

     显示当前会话所具有的权限  select * from session_privs  显示指定用户所具有的系统权限  select * from dba_sys_privs  显示特权用户  select * from v$pwfile_users  查看名称包含log字符的表  ...

    oracle 会话 死锁 执行sql 执行job的方法

    //根据用户分组会话 select t.USERNAME,count(*) from v$session t group by t.USERNAME //查找某一用户正在执行的sql_id值 select * from v$session t where t.USERNAME = 'BUDGET' and t.SQL_ID is not null //...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    connect-session-knex:用于快速会话的knex.js会话存储,支持PostgreSQL,MySQL,MariaDB,Oracle和SQLite

    connect-session-knex是通过库由PostgreSQL,MySQL,MariaDB,MSSQL,Oracle或SQLite3支持的存储。 安装 $ npm install connect-session-knex 历史 参见 用法 选件\ntablename='sessions'要使用的表名。 默认为...

    如何定位Oracle数据库被锁阻塞会话的根源?

     实验环境:Oracle 10.2.0.5 单实例  会话1、模拟业务操作: SQL> select sid from v$mystat where rownum=1; SID ———- 144 SQL> show user USER is "JINGYU" SQL> select * from t1 where id=1 for ...

    Oracle 主要配置文件介绍

    如下所示 忽略以#开头的注释部分 : cams:/u01/app/oracle/product/8.1.7:Y 其中 cams 为实例 ID /u01/app/oracle/product/8.1.7为 ORACLE_HOME目 录 Y表示允许使用 dbstart和 dbshut 启动和关闭该实例...

    Oracle最常用的语句

    Oracle 最常用的命令 1.登陆系统用户 :sqlplus 然后输入系统用户名和密码  登陆别的用户 : conn 用户名/密码; 2.创建表空间  create tablespace 空间名  datafile 'c:\空间名' size 15M --表空间的存放路径,...

    oracle函数大全.doc

    ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...

    Oracle解锁的方式介绍

    1、 查看当前被解锁的对象 示例: 将表aa加锁 执行 select * from aa for update; 方式一:通过SQL查询 select ‘alter system kill session ‘,””||trim(t2.sid)||’,’||trim(t2.serial#)||”’;’ from v$...

    ORACLE SQL性能优化系列

    你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性. 如果...

    oracle数据库经典题目

    PGA区是在用户进程连接数据库,创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    第6课 Oracle性能优化(之一)

    vs.SID 会话id, vs.SERIAL# 会话SERIAL, vp.SPID 系统进程号, vs.USERNAME 用户名, vs.PROGRAM 应用程序, vs.STATUS 状态, vq.SQL_TEXT 执行的SQL from v$process vp, v$session vs, v$sqlarea vq where...

    oracle数据库监控

    0、数据库参数属性col PROPERTY_NAME ... 1、求当前会话的SID,SERIAL#SELECT Sid, Serial# FROM V$sessionWHERE Audsid = Sys_Context('USERENV', 'SESSIONID'); 2、查询session的OS进程IDSELECT p.Spid "OS Thread",

    MYSQL,SQLSERVER,ORACLE常用的函数

    SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from ....

Global site tag (gtag.js) - Google Analytics