`
jarod_hawk
  • 浏览: 2120 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

从linux的pid到oracle的SQL

    博客分类:
  • dbms
阅读更多
从linux的pid查询oracle执行语句的方法,我们先学习几个比较关键的V$视图。
V$process
         从linux中查询到的pid在V$process这个视图中,相对应的字段为spid,举例如下:在linux中,执行top命令,会显示出每个进程在linux中的pid,所属用户,运行的时间以及占用cpu的比率等,我们主要关注的是占用cpu较高的进程,我们记录pid号,查询语句为select spid,addr from v$process where spid = &pid(注:&pid为在top下的pid)。里面有很多的列,我们现在只需要两个字段就可以了,addr与V$session中的paddr关联。我们取得它是为了得到V$session的相关数据。
V$session
在上面的sql语句得到的addr,经过下面的查询select sql_address from V$session where paddr=&addr,就可以得到sqlarea中的address。
V$sqlarea
sql_address就是在视图V$sqlarea中对应的字段address。

经过上面的,我们可以得到一个语句

SELECT sqlarea.SQL_TEXT
FROM V$session sess,V$process pro,V$sqlarea sqlarea
WHERE pro.sPID=&pid
AND sess.PADDR = pro.ADDR
AND sess.SQL_ADDRESS = sqlarea.ADDRESS
分享到:
评论

相关推荐

    linux下oracle启动及关闭

    在Linux环境下操作Oracle数据库,尤其是Oracle 10g版本,涉及到的启动与关闭流程是IT运维人员必须掌握的核心技能之一。本文将详细解析在Linux系统中启动与关闭Oracle数据库的具体步骤,以及相关的环境变量配置与...

    Linux操作系统下Oracle9i数据库SQL语句跟踪、发现、优化方法.pdf

    通过与经验丰富的DBA交流,作者了解到一些实用的方法,例如在Oracle 10g的企业管理器(EM)中查看顶级会话,以快速定位执行慢的SQL语句;在PL/SQL Developer中直接运行SQL并使用F5进行性能分析,以检查索引使用、全表...

    在linux64上安装oracle11g完整.docx

    ### 在Linux 64位系统上安装Oracle 11g的详细步骤与注意事项 #### 前言 本文档旨在为参加老方块培训的学员提供一份详细的Oracle 11g数据库安装指南。搭建良好的学习环境是成为Oracle DBA的第一步,而选择合适的硬件...

    下载-在linux64上安装oracle11g完整 .docx

    ### Oracle 11g 在 Linux 64 位系统上的安装与配置 #### 前言 本指南旨在为希望成为 Oracle DBA 的学习者提供一份详细的 Oracle 11g 数据库在 Linux 64 位系统上的安装教程。本文档不仅涵盖了基本的安装步骤,还...

    推荐下载-在linux64上安装oracle11g完整 精品.docx

    ### Oracle 11g 在 Linux 64 位系统上的安装与配置 #### 前言 Oracle 11g 数据库系统是一款功能强大的数据库管理软件,在企业级应用中广泛使用。本文档将详细介绍如何在 Linux 64 位系统上安装配置 Oracle 11g ...

    ORACLE数据库维护技巧

    - 优化Oracle数据库中的SQL查询,减少不必要的I/O操作。 - 对访问频率高的表建立合理的索引,并考虑将它们分布到不同的表空间中,以分散访问热点。 - 合理地对表进行分区,进一步优化I/O效率。 ##### 2. 内存...

    oracle kill 进程

    这个查询能够提供Oracle正在处理的所有SQL语句及其相关信息,包括进程PID、会话SID、串行号、操作系统用户名等,对于诊断和解决问题非常有用。 #### 五、总结 在Oracle数据库管理中,正确识别并合理处理锁定对象和...

    常用SQL如何查看正在执行的语句

    SELECT a.username, c.spid AS os_process_id, c.pid AS oracle_process_id FROM v$session a, v$process c WHERE c.addr = a.paddr AND a.sid = '27' AND a.serial# = '944'; ``` **解释:** - `v$process`视图...

    oracle kill session

    本文将从理论到实践多个层面深入探讨如何有效地执行“Oracle Kill Session”,帮助数据库管理员更好地理解和掌握这一技能。 #### 一、概念解析 **Oracle Kill Session**是指在Oracle数据库中终止某个或某些会话...

    ORACLE DBA面试题集

    共享池是Oracle SGA(System Global Area)的一个重要组成部分,主要用于存储共享的数据结构,如SQL区域、PL/SQL代码、数据字典缓存等。共享池内的内存可以分为多个层(layer),每层都有特定的功能和用途。 - **库...

    如何查询占CPU高的oracle进程

    SELECT sql_text FROM v$sqltext_with_newlines WHERE hash_value IN (SELECT SQL_HASH_VALUE FROM v$session WHERE paddr IN (SELECT addr FROM v$process WHERE spid= '&pid')) ORDER BY piece; ``` 此外,若要...

    Oracle_Kill_Session_终极篇

    = 0) a, (SELECT p.addr FROM v$process p WHERE pid <> 1 MINUS SELECT s.paddr FROM v$session s WHERE s.status = 'KILLED') b WHERE a.addr = b.addr; ``` 2. **获取操作系统进程ID(spid)**:使用session的...

    Oracle DBA常用的UNIX命令

    Oracle DBA在日常工作中经常会与UNIX/Linux操作系统打交道,掌握一些常用的UNIX命令对于高效管理Oracle数据库至关重要。以下是一些Oracle DBA在UNIX环境下常用的命令及其详细解释: 1. **删除Oracle进程**: - `ps...

    在RHEL3上安装ORALCE9I

    至此oracle9i安装成功,但是安装后还存在一些问题,进入oracle9i的sql环境以后,会发现方向键在sql环境是用不了,此时必须安装几个定义方向键的几个包,配置方法请参考我的另一篇文章------------------------------...

    oracle导出AWR报告,Java导出Javacore

    例如,在Linux系统上,可以使用`kill -3 <pid>`命令(其中`<pid>`为Java进程的ID),这将生成一个Javacore文件。 - **配置JVM参数**:还可以通过配置JVM参数来控制Javacore文件的自动生成。例如,可以在启动Java应用...

    Linux环境搭建流程文档

    1. 下载JDK:从Oracle官方网站下载JDK安装包,网址为https://www.oracle.com/java/technologies/javase-downloads.html。 2. 安装JDK环境:将下载好的JDK安装包放入/usr/local目录下,并解压缩该文件。命令为tar -...

    Oracle对于死锁的处理方法

    一旦检测到死锁,Oracle会随机选择一个或多个进程,终止它们的事务,以解决死锁问题。 Oracle提供了以下步骤来处理死锁: 第一步:通过SQL命令尝试解决死锁 在SQL*Plus或SQL Developer等客户端中,用户可以尝试...

Global site tag (gtag.js) - Google Analytics