工作中遇到一个问题,某报表运行时间特别长,通过操作系统可以看到一个oracle进程消耗资源比较大,如何能够通过该操作系统进程找到具体SQL呢。记录如下:

1、查看Linux系统进程号

可以通过top动态查看某进程的资源使用情况,也可以通过ps aux查看某进程的相关信息。

2、通过v$process查看oracle中对应的进程

SQL> select * from v$process where spid = '';

ADDR                    PID SPID                     PNAME USERNAME           SERIAL# TERMINAL                       PROGRAM                                          TRACEID                                                                          .......
---------------- ---------- ------------------------ ----- --------------- ---------- ------------------------------ ------------------------------------------------ -------------------------------------------------------------------------------- .......
0000000358BE4CD0 78 25802 oracle 158 UNKNOWN .......

3、通过v$session查看具体的会话

SQL> select sql_id,status from v$session where paddr = '0000000358BE4CD0';

SQL_ID        STATUS
------------- --------
akjssv2gwa7jf ACTIVE

4、通过dbms_xplan.display_cursor查看执行计划

SQL> select * from table(dbms_xplan.display_cursor('akjssv2gwa7jf'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID akjssv2gwa7jf, child number 0
------------------------------------- .....有删减......

通过以上步骤就可以通过操作系统的某个进程ID确定到某个sql,然后查看执行计划,进行优化了。其中dbms_xplan.display_cursor这个包还有很多地方需要学习。另起一篇吧。官方文档在这里

Oracle—通过操作系统进程查看数据库sql语句的更多相关文章

  1. oracle 查看并行sql语句的并行数量和如何开并行

    1.执行sql:select /*+ parallel(a,4) */ * from tf_f_user a where rownum<100000; 2.如何查看该sql语句的并行数量: se ...

  2. 数据库 数据库SQL语句五

    集合运算 union 并集(两个集合如果有重复部分,那么只显示一次重复部分) union all 并集(两个集合如果有重复部分,那么重复部分显示两次) intersect 交集 minus 差集 -- ...

  3. [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  4. MySQL 数据库SQL语句——高阶版本2

    MySQL 数据库SQL语句--高阶版本2 实验准备 数据库表配置: mysql -uroot -p show databases; create database train_ticket; use ...

  5. oracle 查询最近执行过的 SQL语句(转载)

    oracle 查询最近执行过的 SQL语句 (2014-06-09 18:02:43) 转载▼   分类: Database oracle 查询最近执行过的 SQL语句 select sql_text ...

  6. oracle 查询最近执行过的 SQL语句

    oracle 查询最近执行过的 SQL语句 select sql_text,last_load_time from v$sql order by last_load_time desc;   SELE ...

  7. 使用C# 操作存储过程,执行sql语句通用类

    如何使用C# 操作存储过程,执行sql语句? 闲话不多说,直接上代码:     /// <summary>    /// Sql通用类    /// </summary>    ...

  8. Oracle查询最近执行过的SQL语句

    oracle 查询最近执行过的 SQL语句 select sql_text,last_load_time from v$sql order by last_load_time desc; SELECT ...

  9. MySQL 数据库SQL语句——高阶版本1

    MySQL 数据库SQL语句--高阶版本 实验准备,数据表配置 mysql -uroot -p show databases; create database train_ticket; use tr ...

随机推荐

  1. win10 如何关掉自带的杀毒软件 window defender

    问题描述: win10系统,自带的杀毒软件 window defender 会实时保护电脑对文件进行检测,将认为的病毒文件自动清除, 造成我想下载的MDK5的注册机一直下载不成功,即使从别处拷贝过来, ...

  2. error #10234-D: unresolved symbols remain error #10010: errors encountered during linking;

    error #10234-D: unresolved symbols remain error #10010: errors encountered during linking;: include ...

  3. python笔记21-内置函数

    # print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真# print(any([0,0,0,0,0]))#判断可迭代的对象里面的值是否有一个为真# print(bin(10 ...

  4. Excel文件上传功能实现

    $(function(){ let file; //上传点击事件 $('#btn').bind('click', function(){ let val = $('#fb').filebox('get ...

  5. Quartz 2.2 动态添加、修改和删除定时任务

    QuartzManager.Java 动态添加.修改和删除定时任务管理类 import org.quartz.CronScheduleBuilder; import org.quartz.CronTr ...

  6. 自动化运维之Saltstack

    第三十八课 自动化运维之Saltstack 目录 一.自动化运维介绍 二. saltstack安装 三. 启动saltstack服务 四. saltstack配置认证 五. saltstack远程执行 ...

  7. 纯js星级评分

    @{ Layout = null;} <!DOCTYPE html> <html><head> <meta name="viewport" ...

  8. ACE + TAO工程中的Messenger启动过程

    1.启动NameService服务 F:\ACESource\ACE_wrappers\TAO\orbsvcs\Naming_Service>tao_cosnaming.exe -o F:\AC ...

  9. Mysql基础教程之mysql 设置参数常用方法

    1)设置mysql的全局方法,设置完立刻重启mysqlvim /etc/my.cnf[mysqld]interactive_timeout=1800wait_timeout=1800 全局永久生效现在 ...

  10. [模板] 树状数组 (C++ class)

    闲来无事(其实是打了两三道树状数组题),写了个树状数组模板…… /* Author: hotwords */ template<typename tp> class BinTree { p ...