oracle数据库连接业务系统,而有些sql语句的执行严重影响了oracle的性能,就如同mysql的慢查询一样,mysql可以开启慢查询日志定位这些造成数据库性能下降的语句,而oracle同样可以做到,而且有过之而无不及。

下面举例说明

首先用root用户登陆核心应用系统,su - oracle

执行命令 topas

可以查看到如下信息:

解释三个地方

1.Idle%:是cpu的空闲率

2.PID:进程唯一标示符

3.CPU%:该进程所占用的cpu的百分比

从上述信息可以定位进程为1454604的进程占用资源比较高,查询该进程的sql语句情况。

登陆核心系统oracle数据库,执行以下语句

  1. select c.spid,a.p1,a.p1raw,a.p2,a.event,b.sql_text,b.SQL_FULLTEXT,b.SQL_ID
  2. from v$session a,v$sql b,v$process c
  3. where a.wait_class<>'Idle' and a.sql_id=b.sql_id and a.PADDR=c.addr
  4. order by event;

情况如下图所示:

找到对应的SPID,点击SQL_FULLTEXT列下的CLOB后面的按钮,可以查看耗费系统资源的具体sql语句。

  1. select 'X'
  2. from lctcont
  3. where '1344926626000'='1344926626000'
  4. and  certifycode like 'TTS%'
  5. and grpcontno
  6. in ( select c.grpcontno from ljaget a ,ljagetendorse b ,lcgrpcont c
  7. where a.EnterAccDate is null
  8. and a.actugetno = b.actugetno
  9. and b.grpcontno = c.grpcontno
  10. and a.otherno='8053000000139568'
  11. )

找到了根源,接着就是如何解决,可见由于字段grpcontno上没有索引,导致表lctcont的全表扫描,最终造成整个执行计划的错乱(其中有笛卡尔积)。因此,正确的再字段grpcontno上创建索引,即可解决此问题。由于这是开发人员写的sql语句,所以对于sql语句的优化,要由他们来配合操作,作为dba不但要懂得如何在内存体系结构上优化数据库,更要懂得协同开发人员一起进行oracle数据库的优化。

本文出自 “我就是我非此非彼” 博客,请务必保留此出处http://wukui127.blog.51cto.com/2866802/963370

抓取oracle数据库耗费资源的sql语句的更多相关文章

  1. Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)

    Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项) A.cat B.concat C.join D.+ 解答:B

  2. Oracle数据库查看表空间sql语句

    转: Oracle数据库查看表空间sql语句 2018-09-03 15:49:51 兰海泽 阅读数 6212   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

  3. Oracle数据库更新时间的SQL语句

    ---Oracle数据库更新时间字段数据时的sql语句---格式化时间插入update t_user u set u.name='pipi',u.modifytime=to_date('2015-10 ...

  4. cmd连接Oracle数据库成功后输入sql语句返回 2

    解决办法 : sql语句后一定要跟分号  .

  5. Oracle 数据库基础学习 (七) SQL语句综合练习

    一.多表查询综合练习 1.  列出高于在30部门工作的所有人员的薪金的员工的姓名.部门名称.部门编号.部门人数 分析: 需要的员工信息: |-emp表:姓名.部门编号 |-dept表:部门名称.部门编 ...

  6. Oracle数据库之开发PL/SQL子程序和包

    Oracle数据库之开发PL/SQL子程序和包   PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保 ...

  7. Oracle数据库使用Analyze提升sql性能

    Oracle数据库使用Analyze提升sql性能 如果你不使用analyze完成sql优化,将意味着:你拒绝使用数据库的查询优化器,也失去了使用优化连接的机会.假设你创建了一张拥有100万条记录的临 ...

  8. 抓取oracle建表语句及获取建表ddl语句

    抓取oracle建表语句及获取建表ddl语句 1.抓取代码如下: 1.1.产生表的语法资料 DECLARE-- v_notPartTable VARCHAR2(1000):= '&2'; -- ...

  9. DBA 需要知道N种对数据库性能的监控SQL语句

    --DBA 需要知道N种对数据库性能的监控SQL语句 -- IO问题的SQL内部分析 下面的DMV查询可以来检查当前所有的等待累积值. Select wait_type, waiting_tasks_ ...

随机推荐

  1. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View

    Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法 返回的对象要求实现了IActionResult接口 继承父类,并引入命名空间 写this点就出现很多东西,这些就是上下文的信 ...

  2. E20180423-hm

    disclosure  n. (发明等的) 公开; 泄露,揭露; 开诚布公的话; 被公开的事情,被披露的秘闻; alignment n. 结盟; 队列,排成直线; 校直,调整; [工] 准线; ali ...

  3. Unity3D NGUI UIPlayTween(原UIButtonTween)动画事件详解

    http://blog.csdn.net/asd237241291/article/details/8507817 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术 ...

  4. C#程序结构与基本语法

    C# 程序结构 Hello World 实例 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declaration) 一个 class Class 方法 Class 属性 一个 ...

  5. C#中自定义类数组和结构数组的使用

    如有雷同,不胜荣幸,若转载,请注明 C#中自定义类数组和结构数组的使用 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一 ...

  6. CentOS7下如何正确安装并启动Docker(图文详解)

    我使用了CentOS 7操作系统,可以非常容易地安装Docker环境.假设,下面我们都是用root用户进行操作,执行如下命令进行准备工作: yum install -y yum-utils yum-c ...

  7. python中时间日期格式化符号的含义

    %y   两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H    24小时制小时数(0-23) %I   12 ...

  8. 洛谷 P4317 花神的数论题 || bzoj3209

    https://www.lydsy.com/JudgeOnline/problem.php?id=3209 https://www.luogu.org/problemnew/show/P4317 设c ...

  9. Magento 缓存机制简析

    在知道缓存机制前,首先需要知道,Magento的路由机制,这边就不做赘述了,百度一大堆. 下面一个简单的缓存生效流程: A:首先在页面开始时,Magento在app\code\core\Mage\Co ...

  10. E. Xenia and Tree 分块 + LCA

    http://codeforces.com/contest/342/problem/E 如果把询问1存起来,每到sqrt(m)的时候再处理一次. 那么总复杂度就是msqrt(m)的. 把要变颜色的节点 ...