
正文
oracle查询执行包的session,oracle 查看执行语句
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何查看oracle当前session信息
只需要用下面的SQL语句查询一下就可以了。
可以通过audsid查询当前session的sid。
v$session:有关会话的信息 v$sesstat:在v$session中报告当前会话的统计信息 v$sqlarea:共享池中使用当前光标的统计信息,光标是一块内存区域,有Oracle处理SQL语句时打开。
首先在任务管理器里看到pid和sid的进程linux下可用top命令进行查看然后查询v$session查看起sid和#serial#字段;此时在连接v$sql的话就可以知道具体session的内容了。
相关问答
Q1: Oracle获取session的IP
第一个是获取客户端ip,第二个是获取服务器ip的。
使用userenv(‘sid’) 直接获取 这种方法只能在oracle 10g以后可以使用。
Oracle中通过v$session表中的OSUSER和MACHINE字段可以查看当前客户端登陆连接的“操作系统名称”和“机器名”,但没能查看到客户端电脑IP。
#v$sqlarea中有执行过的SQL语句,但并无到session的关联信息,v$session中只关联了当前的sql,所以也不行。
等于dba_users中的username。Oracle内部进程的username为空。COMMAND - session正在执行的sql id,1代表create table,3代表select。TADDR - 当前的transaction address。可以用来关联v$transaction中的addr字段。
Q2: 如何查看oracle数据库中哪些session异常阻塞了系统?
1、死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。
2、方法/步骤 打开PL/SQL Developer,输入用户名密码和数据库等信息。在工具栏中选择tools,在弹出的窗口选择Sessions...即可。如图所示,所有的session和起sid都列了出来,我们需要找Status为active(活动)的。
3、创建测试表,如下图。createtabletest_lock(idnumber,valuevarchar2(200));执行append语句;并且不做提交,insert/*+append*/intotest_lockvalues(1,1)如下图。
4、创建一个表并插入数据,然后创建不同的session,同事阻塞session。
5、使用v$locked_object视图查看阻塞会话的session id,然后通过v$session+v$sql视图查看一下正在执行什么操作。如果可以,使用alter session命令kill掉即可解决阻塞。
6、?3?1?3阻塞是可以被接受的。而且短暂的阻塞也是数据库的常态。只有当阻塞的时间超过了人们的容忍时间,这种阻塞现象需要DBA的关注。
Q3: 如何查看oracle某用户近期执行的SQL
我们首先列出查看执行计划的一些常用方法:explain plan命令PL/SQL Developer中通过快捷键F5就可以查看目标SQL的执行计划了。但其实按下F5后,实际后台调用的就是explain plan命令,相当于封装了该命令。
首先,向你介绍一个动态视图:v$sql 该视图展示最近一段时间所有执行过的sql语句:select * from v$sql 即可。如果报错找不到v$sql,一般是权限问题,换sysdba就肯定能查到。
shared pool里的可以基于v$SQL查询,前提是SQL没有被刷走。
Q4: ORACLE如何查询被锁定表及如何解锁释放session
1、ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于假死状态,可能是该表被某一用户锁定,导致其他用户无法继续操作。
2、在做Oracle监听程序测试时,发现帐户已经被锁定。在数据库安装电脑上,点击开始打开运行窗口。在运行窗口输入CMD,调出命令提示符界面。在命令提示符下面,用管理员身份登入到数据库sqlplus / as sysdba。
3、alter system kill session 24,111; (其中24,111分别是上面查询出的sid,serial#)【注】以上两步,可以通过Oracle的管理控制台来执行。
4、你要先查一下是那个会话那个sql锁住了表,有可能这是正常业务需求,不建议随便KILL session,如果这个锁表是正常业务你把session kill掉了会影响业务的。建议先查原因再做决定。
5、记得在数据库级别用alter system kill session sid,serial#;杀掉不正常的锁。
Q5: 如何查看Oracle数据库的session阻塞
1、下面我将做一个例子来解释如何迅速的处理这种阻塞:下面的例子是两个session 同时更新HR用户的同一条记录。
2、死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。
3、oracle多用户操作有时候会造成session阻塞,形成了锁表等问题。可以使用sql语句进行查询,但用工具更为方便。本文就介绍使用PL/SQL developer工具查看或杀掉oracle的session。
4、查看视图:dba_hist_sqlstats、dba_hist_sqltext(历史数据) 如何使用PL/SQL Developer查看和杀掉session oracle多用户操作有时候会造成session阻塞,形成了锁表等问题。 可以使用sql语句进行查询,但用工具更为方便。
5、怎样查看Oracle当前的连接数呢?只需要用下面的SQL语句查询一下就可以了。
6、再次执行清表语句,truncatetabletest_lock;报锁表错误,如下图。
关于oracle查询执行包的session和oracle 查看执行语句的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






