oracle 消耗资源的sql,ORACLE 如何定位消耗资源的SQL

本文详细列举了多种用于分析Oracle数据库中性能低下、资源消耗大的SQL语句的方法,包括查看高磁盘读取、内存消耗、逻辑读取、执行次数等关键指标,以帮助优化数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在分析SQL性能的时候,经常需要确定资源消耗多的SQL,总结如下:

1 查看值得怀疑的SQL

select substr(to_char(s.pct, '99.00'), 2) || '%' load,

s.executions executes,

p.sql_text

from (select address,

disk_reads,

executions,

pct,

rank() over(order by disk_reads desc) ranking

from (select address,

disk_reads,

executions,

100 * ratio_to_report(disk_reads) over() pct

from sys.v_$sql

where command_type != 47)

where disk_reads > 50 * executions) s,

sys.v_$sqltext p

where s.ranking <= 5

and p.address = s.address

order by 1, s.address, p.piece;

2 查看消耗内存多的sql

select b.username ,a. buffer_gets ,a.executions,

a.disk_reads/decode(a.executions,0,1,a.executions),a.sql_text SQL

from v$sqlarea a,dba_users b

where a.parsing_user_id = b.user_id

and a.disk_reads >10000

order by disk_reads desc;

3 查看逻辑读多的SQL

select *

from (select buffer_gets, sql_text

from v$sqlarea

where buffer_gets > 500000

order by buffer_gets desc)

where rownum <= 30;

4 查看执行次数多的SQL

select sql_text, executions

from (select sql_text, executions from v$sqlarea order by executions desc)

where rownum 

5 查看读硬盘多的SQL

select sql_text, disk_reads

from (select sql_text, disk_reads from v$sqlarea order by disk_reads desc)

where rownum 

6 查看排序多的SQL

select sql_text, sorts

from (select sql_text, sorts from v$sqlarea order by sorts desc)

where rownum 

7 分析的次数太多,执行的次数太少,要用绑变量的方法来写sql

set pagesize 600;

set linesize 120;

select substr(sql_text, 1, 80) "sql", count(*), sum(executions) "totexecs"

from v$sqlarea

where executions 

group by substr(sql_text, 1, 80)

having count(*) > 30

order by 2;

8 游标的观察

set pages 300;

select sum(a.value), b.name

from v$sesstat a, v$statname b

where a.statistic# = b.statistic#

and b.name = 'opened cursors current'

group by b.name;

select count(0) from v$open_cursor;

select user_name, sql_text, count(0)

from v$open_cursor

group by user_name, sql_text

having count(0) > 30;

9 查看当前用户&username执行的SQL

select sql_text

from v$sqltext_with_newlines

where (hash_value, address) in

(select sql_hash_value, sql_address

from v$session

where username = '&username')

order by address, piece;

消耗资源的SQL的定位方法&semi;

解答:select sql_text from v$sql where disk_reads > 1000 or (executions > 0 and buffer_gets/execu ...

oracle 中如何定位重要&lpar;消耗资源多&rpar;的SQL

链接:http://www.xifenfei.com/699.html 标题:oracle 中如何定位重要(消耗资源多)的SQL 作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则 ...

(原创)性能测试中,Oracle服务器定位CPU使用率高的瓶颈(SQL)

本篇博客记录一次性能测试过程中,定位对CPU使用率高的瓶颈问题,主要定位SQL为准 一.用SQL命令定位1.首先用TOP命令监控系统资源,如果是AIX系统,就用topas,进入TOP命令的滚动刷新数据 ...

如何查找消耗资源较大的SQL

对于优化来讲,查找消耗资源较大的SQL至关重要,下面介绍几个之前用到的SQL. 1.从V$SQLAREA中查询最占用资源的查询. select b.username username,a.disk_r ...

Oracle中查询和定位数据库问题的SQL语句

--1)查询和定位数据库问题的SQL语句--Oracle常用性能监控SQL语句.sql --1查询锁表信息 select vp.SPID, vs.P1, vs.P1RAW, vs.P2, vs.EVE ...

Oracle—通过操作系统进程查看数据库sql语句

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

查询oracle比较慢的session和sql

注:本文来源:sxhong   ---查询最慢的sql select * from ( select parsing_user_id,e ...

Oracle性能分析1:开启SQL跟踪和获取trace文件

当Oracle查询出现效率问题时,我们往往须要了解问题所在,这样才干针对问题给出解决方式.Oracle提供了SQL运行的trace信息,当中包括了SQL语句的文本信息.一些运行统计,处理过程中的等待, ...

oracle 查询最近执行过的 SQL语句&lpar;转载&rpar;

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

随机推荐

SQL 2012 Restore HeaderOnly

--USE [master] GO /****** Object: StoredProcedure [dbo].[zsp_RestoreHeaderOnly] Script Date: 2014/1/ ...

java可变参数

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.注意:可变参数必须位于最后一项.当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持 ...

Linux学习笔记(二)

1.tzselect无法是使用 vim /usr/bin/tzselect 将 ${TZDIR=pwd}改为${TZDIR=/usr/share/zoneinfo} 2.sudo apt-get in ...

面试题目&colon; PHP 有哪些优缺点?

当面试官噼里啪啦的问你一大堆问题后,突然问你,PHP有哪些优缺点?你蒙了没? 反正我是蒙了,不管你信不信! 现在,关于PHP优缺点,大致的说几点: 1.  语法简单的,上手很快,而且还有很多很便捷的开 ...

C&num;版 Socket编程(最简单的Socket通信功能)

示例程序是同步套接字程序,功能很简单,只是客户端发给服务器一条信息,服务器向客户端返回一条信息:这里只是一个简单的示例,是一个最基本的socket编程流程,在接下来的文章中,会依次记录套接字的同步和异 ...

Hello world&comma;Hello 2014,Bye 2013

序 想要写点什么的时候发现不知道写什么了,用一句话来总结2013的话,就是2013是既熟悉又陌生的一年,熟悉是同样的开发工作,陌生是从河南到北京的环境改变,当时大学的卧谈会,谈论毕业了要做什么,想要在 ...

mac 配置jdk maven

1.从oracle下载jdk 链接:http://www.oracle.com/technetwork/java/javase/downloads/index.html 然后安装jdk 2.下载Mav ...

org&period;apache&period;hadoop&period;fs-PositionedReadable

package org.apache.hadoop.fs; import java.io.*; import org.apache.hadoop.fs.*; /** Stream that permi ...

Oracle instr用法

1:实现indexOf功能,.从第1个字符开始,搜索第1次出现子串的位置 ,) as i from dual; select instr('oracle','or') as i from dual; ...

JVM垃圾回收总结

来自Oracle官方文档,对JVM GC知识整理的清晰易懂,查资料还是看官方的好! 1 GC步骤简述 步骤1:标记 (Marking) 根据对象引用关系,将未被任何对象引用的对象实例标记出来,如下图中 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值