`

oracle排查异常sql的一些方法

阅读更多
转自http://blog.itpub.net/23155850/viewspace-683737/
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 < 81;

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

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

7、分析的次数太多,执行的次数太少,要用绑变量的方法来写sql
set pagesize 600;
set linesize 120;
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;

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;

分享到:
评论

相关推荐

    通过ORACLE通用连接访问SQLServer数据库的方法

    通过Oracle通用连接访问SQL Server数据库的方法为IT领域提供了一种跨数据库系统进行数据交互的有效途径。这种方法主要依赖于Oracle数据库的异构服务功能,允许用户从Oracle环境中直接查询或操作其他类型数据库(如...

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    本文将详细讲解如何使用Oracle SQL Developer工具进行这样的迁移过程,以及如何解决在迁移过程中遇到的问题。 首先,确保你拥有正确的工具。在这个案例中,你需要MySQL 5.6.37、Oracle 11g以及Oracle SQL Developer...

    SQLTracker oracle跟踪工具

    高级的SQLTracker可能还会提供一些自动化的优化建议,如提示改进索引策略,优化表结构,或者调整SQL语句的写法。 总的来说,SQLTracker作为一款强大的Oracle SQL跟踪工具,其简洁的使用方式、全面的功能以及对64位...

    oracle-查找硬解析问题SQL语句

    在数据库中硬解析是万恶之源,为大家提供一个查找并且定位oracle硬解析问题SQL语句脚本

    oracle管理常用sql脚本

    在Oracle数据库管理中,SQL(Structured Query Language)脚本扮演着至关重要的角色,尤其是在日常维护、性能监控和问题排查方面。以下是一些Oracle管理中常用的SQL脚本及其相关的知识点: 1. **数据查询与操作**:...

    SQLTracker Oracle跟踪工具(支持64位)

    在数据库管理领域,了解并掌握SQLTracker对于提升数据库性能优化和问题排查至关重要。 首先,SQLTracker的核心功能在于实时跟踪。它能够实时监控数据库中的SQL语句执行情况,包括执行频率、执行时间、资源消耗等...

    oracle db2 sql server

    标题“Oracle、DB2、SQL Server”提示我们讨论的是三个主要的关系型数据库管理系统(RDBMS):Oracle、IBM DB2以及Microsoft SQL Server。这些数据库系统在IT领域中广泛用于数据存储、管理和处理,尤其在企业级应用...

    认识oracle中的sqlnet.ora tnsnames.ora listener.ora三个文件

    ### 认识Oracle中的sqlnet.ora、tnsnames.ora与listener.ora三个关键配置文件 #### 一、概述 在Oracle安装过程中,我们常常...了解这些配置文件的工作原理和配置细节对于Oracle数据库的日常管理和故障排查至关重要。

    面试oracle必备的sql语句

    以上就是Oracle面试中可能涉及到的一些SQL查询语句的知识点详解。这些查询语句涵盖了Oracle数据库管理的各个方面,包括表空间管理、数据库对象管理、性能监控等,对于准备面试或日常工作中遇到的问题都非常实用。

    oracle 常用SQL查询

    以下是一些常用的Oracle SQL查询,这些查询涵盖了从基础的表空间信息到复杂的数据库对象状态和性能监控。 1. **查看表空间的名称及大小**: 这个查询通过`dba_tablespaces`和`dba_data_files`视图获取每个表空间的...

    oracle sql developer数据库连接成功后打不開表

    - **重新安装**:如果上述方法均无效,可以考虑卸载并重新安装Oracle SQL Developer,同时确保在安装过程中遵循所有必要的步骤和提示。 - **寻求社区帮助**:加入Oracle社区论坛或其他技术交流平台,描述遇到的具体...

    oracle常用sql.rar

    以下是一些Oracle SQL的重要知识点: 1. **锁表查询**: 在Oracle中,锁定数据是为了确保数据的一致性和完整性。`SELECT ... FOR UPDATE`语句用于锁定一行或多行数据,直到当前事务结束。这在并发环境中处理敏感...

    Oracle密码过期,sql server备份排查

    总结来说,管理和维护Oracle及SQL Server数据库涉及多方面的知识,包括密码策略管理、备份策略设计、故障排查和工具的熟练使用。在实际工作中,了解这些知识点将有助于提升数据库系统的稳定性和安全性。而文件...

    wxh oracle常用SQL脚本

    从给定的文件信息来看,主要涉及的是Oracle数据库的管理和优化相关的SQL脚本与知识点,以下将对这些知识点进行详细的解读和扩展。 ### Oracle数据库I/O统计查询 第一条SQL脚本用于统计Oracle数据库中的I/O操作,...

    SQL SERVER 安装ORACLE provider for OLE DB 的连接服务驱动.zip

    **SQL SERVER与ORACLE集成:安装ORACLE Provider for OLE DB连接服务驱动** 在Microsoft SQL Server环境中,有时候我们需要与其他数据库系统,如Oracle,进行数据交互。为了实现这一点,可以借助Oracle提供的OLE DB...

    Oracle sqlnet.ora配置

    《Oracle SQLNET.ORA配置详解》 在Oracle数据库系统中,SQLNET.ORA是一个至关重要的配置文件,它定义了客户端与服务器之间的网络通信参数。理解并正确配置SQLNET.ORA文件,对于确保数据库连接的稳定性和安全性至关...

    java jsp sqlserver数据表转移到oracle实例 源代码

    标题中的“java jsp sqlserver数据表转移到oracle实例 源代码”表明这是一个关于使用Java和JSP技术,将SQL Server数据库中的数据表迁移至Oracle数据库的实际操作案例。这个过程通常涉及数据迁移、数据转换以及可能的...

    Oracle SQL Reference

    Oracle SQL Reference 是一份详尽的文档,不仅覆盖了Oracle 11g Release 2版本中SQL语言的基本使用方法,还深入介绍了各种高级功能和最佳实践。无论是对于初学者还是经验丰富的开发人员来说,它都是不可或缺的参考...

    SQL跟踪工具 Oracle 64位

    SQLTracker是一款专为监视在Oracle数据库上运行的应用程序而设计的高效工具,尤其适用于64位Windows操作系统,如Win7和Win10。这款工具旨在帮助数据库管理员(DBA)和开发人员深入理解SQL查询的执行性能,从而优化...

    Oracle 死锁问题的排查语句

    Oracle 死锁问题的排查语句 Oracle 死锁是指在数据库中出现的循环等待资源的情形,从而导致数据库性能下降或系统崩溃。出现死锁的原因有多种,如资源竞争、锁定机制不当等。下面是排查 Oracle 死锁问题的语句: 1....

Global site tag (gtag.js) - Google Analytics