`

oracle 中如何定位重要(消耗资源多)的SQL

阅读更多
可以到v$sql中查询,比如以buffer_gets,executions,disk_reads等条件判断.
--值得怀疑的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)
        wheredisk_reads>50*executions) s,
       sys.v_$sqltext p
wheres.ranking<=5
  andp.address=s.address
orderby1, s.address, p.piece;

--逻辑读多的SQL
select*
 from(select buffer_gets, sql_text
         from v$sqlarea
        where buffer_gets>500000
        order by buffer_gets desc)
where rownum<=30;

--执行次数多的SQL
select sql_text, executions
 from(select sql_text, executions from v$sqlarea order by executions desc)
where rownum<81;

--读硬盘多的SQL
select sql_text, disk_reads
 from(select sql_text, disk_reads from v$sqlarea order by disk_reads desc)
where rownum<21;

--排序多的SQL
select sql_text, sorts
 from(select sql_text, sorts from v$sqlarea order by sorts desc)
where rownum<21;

--分析的次数太多,执行的次数太少,要用绑变量的方法来写sql
setpagesize600;
setlinesize120;
select substr(sql_text,1,80) "sql",count(*),sum(executions) "totexecs"
 from v$sqlarea
where executions<5
group by substr(sql_text,1,80)
having count(*)>30
order by 2;

--游标的观察
setpages300;
select sum(a.value), b.name
 from v$sesstat a, v$statname b
where a.statistic#=b.statistic#
  andb.name='opened cursors current'
groupbyb.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;

--查看当前用户&username执行的SQL
select sql_text
 from v$sqltext_with_newlines
where(hash_value, address)in
       (select sql_hash_value, sql_address
         from v$session
        wher eusername='&username')
order by address, piece;

--
select b.username用户名,a.disk_reads磁盘读取量,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;
可以把disk_reads改成buffer_gets则求出消耗内存多的sql


 

分享到:
评论

相关推荐

    oracle中定位资源消耗多的sql

    定位资源消耗多的sql,亲测可用

    oracle消耗资源的sql查询语句记录

    oracle消耗资源的sql查询语句记录

    oracle查找定位占用临时表空间较大的SQL语句方法

    oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。

    oracle性能常用sql.sql

    常用性能sql,消耗cpu最高的10条语句、查询前10条性能差的sql语句、查询最占资源的sql、查询oracle正在执行的sql、查询被锁的sql、查找索引对应的表、查询当前索引的状态、查询索引的分区、查看哪些用户连到了DB上,...

    ORACLE索引详解及SQL优化

    ORACLE索引详解及SQL优化,详细描述了几种常用索引原理以及创建方法,解读索引生效条件,以及在开发中常用的提高数据库效率、降低数据库资源消耗的方法。

    如何使用AWR报告发现低效的SQL

    目前发现很多局点在上线以后有很多低效的sql,导致cpu繁忙、磁盘I/O繁忙、效率低下,影响系统的正常运行。如何在测试环节或上线以后发现这些低效的sql呢? Oracle AWR报告可以很好的帮我们解决这个问题

    Oracle四大宝典之四:Oracle 调优入门到精通

    性能问题是Oracle系统都会碰到的问题,如何使有限的计算机系统资源为更多的用户服务?如何保证用户的响应速度和服务质量?这些问题都属于数据库性能优化的范畴。 第1章 性能优化概述 第2章 诊断与调优工具 第3章 I/...

    Oracle数据库中SQL语句的优化技巧

    在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_...

    java使用jdbc连接oracle数据库

    这是java连接oracle的jar包,下载后,直接解压带入LIB下,即可使用, 这是java连接oracle的jar包,下载后,直接解压带入LIB下,即可使用,

    ORACLE数据库DBA面试集锦

    简介: 希望可以给面试DBA的朋友有所帮助,里面文件压缩包里有... 4:如何定位重要(消耗资源多)的SQL select sql_text from v$sql where disk_reads &gt; 1000 or (executions &gt; 0 and buffer_gets/executions &gt; 30000);

    SQLDeveloper-forMac

    sqldeveloper是oracle自己引入的开发工具。 免费;除了oracle数据库,sybase、mysql、mssqlserver、MS Access等数据库...缺点是相对消耗资源(但对于今天性能和内存白菜价过高的笔记本和台式机CPU,基本可以忽略不计)。

    ORACLE9i_优化设计与系统调整

    §7.2 关于创建多个Oracle实例问题 93 §7.3 Oracle系统安装后的优化基础工作 94 §7.3.1 Oracle系统有关目录所有文件的保护 94 §7.3.2 避免新用户使用默认system系统表空间 94 §7.4 Oracle系统所在服务器的独立性...

    深入解析Oracle.DBA入门进阶与诊断案例

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...

    Oracle数据库管理员技术指南

    8.10.2 监控并优化系统资源 8.11 回顾 第9章 Oracle8i 的新特性 9.1 新的性能优化特性 9.1.1 设计的稳定性和存储概要 9.1.2 排序改进 9.1.3 实体化视图 9.1.4 利用 DBMS_STATS 收集性能统计 数据 9.2 新...

    Spotlight_On_Oracle

    图形化、实时显示 Oracle Instance的活动状态 利用数据流、图形、颜色和声音等...显示有关问题的详细信息,如活动的 Sessions、资源消耗大的SQL语句、Disk I/O以及Locks/Latches/等待事件 内置调优建议 与其它模块集成

    oracle_优化器详解

    来说可能消耗更多的资源。 优化器产生的执行计划会因“优化器目标”的不同而不同。如果以最佳吞吐量为目标, 结果更倾向于使用全表扫描而不是索引扫描,或者使用排序合并连接而不是嵌套循环连接; 如果以最快的...

    oracle动态性能表

     按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sesstat,该视图存储下列的统计信息: 1&gt;.事件发生次数的统计(如:user commits) 2&gt;...

    Oracle性能优化

    行的情况下是否能降低资源的消耗?性能问题是 Oracle 系统都会碰到的问题,如何使有限 的计算机系统资源为更多的用户服务?如何保证用户的响应速度和服务质量?这些问题都 属于数据库性能优化的范畴。 为了保证 ...

    LightProfiler:Oracle的Profiler扩展SQL跟踪文件-开源

    它为扩展SQL跟踪文件(事件10046)生成详细的资源配置文件,其中包含有关消耗响应时间(按事件,按游标等),数据文件的使用情况,错误分析(SQL,PL / SQL)等信息。 它还包含用于跟踪文件的其他处理(提取会话...

Global site tag (gtag.js) - Google Analytics