1 获取当前session的sid
select sid, serial# from v$mystat where rownum=1
2 获取sid和spid
(1)根据sid获取spid
select spid from v$process p, v$session s where s.sid=&sid and s.paddr=p.addr;
(2) 获取当前session的sid和spid
select sid, spid from v$process p, v$session s where s.paddr=p.addr and s.sid=(select sid from v$mystat where rownum=1);
3 获取当前session的trace文件路径
select p.value || '/' || t.instance || '_ora_' || ltrim(to_char(p.spid,'fm99999')) || '.trc' trace_path
from v$process p, v$session s, v$parameter p, v$thread t
where p.addr = s.paddr and s.sid=(select sid from v$mystat where rownum=1) and p.name = 'user_dump_dest';
或者
select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
p.spid || '.trc' trace_file_name
from (select p.spid
from sys.v$mystat m, sys.v$session s, sys.v$process p
where m.statistic# = 1
and s.sid = m.sid
and p.addr = s.paddr) p,
(select t.instance
from sys.v$thread t, sys.v$parameter v
where v.name = 'thread'
and (v.value = 0 or t.thread# = to_number(v.value))) i,
(select value from sys.v$parameter where name = 'user_dump_dest') d;
4 根据sid查看当前正在执行或最近一次执行的语句
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.sid=&sid)
order by piece asc;
分享到:
相关推荐
自己整理的关于oracle session的状态查看,对新手有一定的帮助,希望您喜欢。
在Oracle数据库管理中,有时会遇到一些异常情况,比如某个Session长时间未响应或占用大量资源,这时可能需要管理员手动干预,通过`ALTER SYSTEM KILL SESSION 'SID,SERIAL#'`命令来强制终止这个Session。然而,在...
在Oracle数据库管理与优化的过程中,`v$session`与`v$session_wait`视图扮演着至关重要的角色,它们提供了关于当前活动会话及其等待事件的详细信息,这对于诊断性能问题、理解数据库行为以及进行有效的资源管理至关...
1. **查询Session信息:** 使用以下SQL查询来找出特定用户名下的所有非活跃(INACTIVE)Session: ```sql SELECT sid, username, paddr, status FROM v$session WHERE username = '目标用户名' AND status = '...
接下来,我们将深入探讨Oracle数据库中锁的相关知识点。 #### 锁的类型及其作用 Oracle中的锁主要有以下几种模式: - **0:None** —— 没有任何锁。 - **1:Null** —— 空锁,表示没有任何锁的状态。 - **2:...
Oracle 数据库解锁session方式
- **行等待信息查询** - 通过 `ROW_WAIT_OBJ#`, `ROW_WAIT_FILE#`, `ROW_WAIT_BLOCK#`, `ROW_WAIT_ROW#` 可以查询到关于行级别的锁定信息: - 获取锁定的对象信息: ```sql SELECT * FROM dba_objects WHERE ...
### 重启Oracle服务与删除Session的操作指南 #### 一、背景介绍 在Oracle数据库管理过程中,有时需要重启Oracle服务或清除所有的会话(session),以解决某些特定问题或进行必要的维护工作。本文将详细介绍如何通过...
### Oracle中Session与Processes参数的设置详解 #### 一、引言 在Oracle数据库管理过程中,合理设置系统参数对于确保数据库稳定运行至关重要。其中,“session”与“processes”两个参数直接影响到数据库能够同时...
### Oracle Kill Session:详解与实践 在Oracle数据库管理与维护过程中,“Oracle Kill Session”是一项非常重要的操作技巧。本文将从理论到实践多个层面深入探讨如何有效地执行“Oracle Kill Session”,帮助...
在Oracle数据库管理中,处理死锁进程和释放状态为killed的session是一项关键技能,尤其对于维护数据库性能和稳定性至关重要。以下将详细阐述如何通过一系列步骤有效地关闭Oracle死锁进程,以及如何释放状态为killed...
可以通过查询`V$DB_OBJECT_CACHE`视图来获取相关信息。该视图显示了当前被缓存在库缓存中的数据库对象,包括表、索引、簇、同义词定义、PL/SQL过程和包以及触发器等。 **查询语句示例**: ```sql SELECT * FROM V$...
Oracle疑难:session无法完全删除问题
非常好的oracle session 连接关系图
本文将从查询、设定以及二者之间的关系等方面详细介绍如何修改Oracle的`process`与`session`初始化参数。 #### 一、查询Process与Session 首先,我们需要了解当前系统中的`process`和`session`的数量,这可以通过...
1. **获取session的内存地址**:使用以下查询语句获取已标记为“KILLED”状态的session的详细信息,包括其地址(addr): ```sql SELECT * FROM (SELECT s.username, s.serial#, s.sid, s.status, x.addr, x....
以下将详细介绍如何通过不同的方法来查看当前会话所执行的SQL语句及相关信息。 #### 1. 获取当前会话的信息 首先,我们可以通过`v$session`视图来获取当前会话的基本信息,如SID、SERIAL#等。 ```sql -- 查询当前...
本文档将详细介绍如何查询用户锁表,并提供相关的代码。 一、查询用户锁表的必要性 在 Oracle 数据库中,锁表是指用户在进行数据操作时临时锁定的表,以防止其他用户同时对该表进行操作。但是,锁表也可能会导致...
- **V$视图**:Oracle提供了一系列V$视图,用于实时监控数据库状态,如V$SESSION、V$SQL、V$SQLAREA等。 - **AWR报告**:自动工作负载 repository,提供了数据库性能的周期性快照,帮助分析性能变化。 - **ASH...
对于批量结束所有Oracle用户的进程,Windows环境可以执行SQL查询生成批处理文件执行,而在Unix环境中,使用`ps`、`grep`和`awk`命令结合`kill`可一次性结束所有非Oracle守护进程。 需要注意的是,使用`alter system...