`

oracle 查看 sql 执行效率

阅读更多
http://wenku.baidu.com/view/eaed94c2d5bbfd0a79567329.html
==============================

SQL效率检查sql:
SELECT EXECUTIONS,
       DISK_READS,
       BUFFER_GETS,
       ROUND((BUFFER_GETS - DISK_READS) / BUFFER_GETS, 2) Hit_radio,
       ROUND(DISK_READS / EXECUTIONS, 2) Reads_per_run,
       SQL_TEXT
  FROM V$SQLAREA
WHERE EXECUTIONS > 0
   AND BUFFER_GETS > 0
   AND (BUFFER_GETS - DISK_READS) / BUFFER_GETS < 0.8
ORDER BY 4 DESC;

Oracle中v$sqlarea与v$sql_plan全面分析


•        v$sql、v$sqlarea 、v$sqltext
这三个视图都可以用于查询共享池中已经解析过的SQL语句及其相关信息。
V$SQL中列出了共享SQL区中所有语句的信息,它不包含GROUP BY字句,并且为每一条SQL语句中单独存放一条记录;
V$SQLAREA中一条记录显示了一条共享SQL区中的统计信息。它提供了有在内存中、解析过的和准备运行的SQL语句的统计信息;
V$SQLTEXT包含了库缓存中所有共享游标对应的SQL语句。它将SQL语句分片显示。
下面介绍一下我常用的V$SQLAREA的结构:
字段 数据类型 说明
SQL_TEXT VARCHAR2(1000) 游标中SQL语句的前1000个字符。
SHARABLE_MEM NUMBER 被游标占用的共享内存大小。如果存在多个子游标,则包含所有子游标占用的共享内存大小。
PERSISTENT_MEM NUMBER 用于一个打开这条语句的游标的生命过程中的固定内存大小。如果存在多个子游标,则包含所有子游标生命过程中的固定内存大小。
RUNTIME_MEM NUMBER 一个打开这条语句的游标的执行过程中的固定内存大小。如果存在多个子游标,则包含所有子游标执行过程中的固定内存大小。
SORTS NUMBER 所有子游标执行语句所导致的排序次数。
VERSION_COUNT NUMBER 缓存中关联这条语句的子游标数。
LOADED_VERSIONS NUMBER 缓存中载入了这条语句上下文堆(KGL heap 6)的子游标数。
OPEN_VERSIONS NUMBER 打开语句的子游标数。
USERS_OPENING NUMBER 打开这些子游标的用户数。
FETCHES NUMBER SQL语句的fetch数。
EXECUTIONS NUMBER 所有子游标的执行这条语句次数。
USERS_EXECUTING NUMBER 通过子游标执行这条语句的用户数。
LOADS NUMBER 语句被载入和重载入的次数
FIRST_LOAD_TIME VARCHAR2(19) 语句被第一次载入的时间戳。
INVALIDATIONS NUMBER 所以子游标的非法次数。
PARSE_CALLS NUMBER 所有子游标对这条语句的解析调用次数。
DISK_READS NUMBER 所有子游标运行这条语句导致的读磁盘次数。
BUFFER_GETS NUMBER 所有子游标运行这条语句导致的读内存次数。
ROWS_PROCESSED NUMBER 这条语句处理的总记录行数。
COMMAND_TYPE NUMBER Oracle命令类型代号。
OPTIMIZER_MODE VARCHAR2(10) 执行这条的优化器模型。
PARSING_USER_ID NUMBER 第一次解析这条语句的用户的ID。
PARSING_SCHEMA_ID NUMBER 第一次解析这条语句所用的schema的ID。
KEPT_VERSIONS NUMBER 所有被DBMS_SHARED_POOL包标识为保持(Keep)状态的子游标数。
ADDRESS RAW(4 | 指向语句的地址
HASH_VALUE NUMBER 这条语句在library cache中hash值。
MODULE VARCHAR2(64) 在第一次解析这条语句是通过调用DBMS_APPLICATION_INFO.SET_MODULE设置的模块名称。
MODULE_HASH NUMBER 模块的Hash值
ACTION VARCHAR2(64) 在第一次解析这条语句是通过调用DBMS_APPLICATION_INFO.SET_ACTION设置的动作名称。
ACTION_HASH NUMBER 动作的Hash值
SERIALIZABLE_ABORTS NUMBER 所有子游标的事务无法序列化的次数,这会导致ORA-08177错误。
IS_OBSOLETE VARCHAR2(1) 游标是否被废除(Y或N)。当子游标数太多了时可能会发生。
CHILD_LATCH NUMBER 为了包含此游标的子latch数。
查看当前会话所执行的语句以及会话相关信息:
SQL> select a.sid||'.'||a.SERIAL#, a.username, a.TERMINAL, a.program, s.sql_text
    2    from v$session a, v$sqlarea s
    3    where a.sql_address = s.address(+)
    4    and a.sql_hash_value = s.hash_value(+)
    5    order by a.username, a.sid;

... ...

SQL>
•        v$sql_plan
视图V$SQL_PLAN包含了library cache中所有游标的执行计划。通过结合v$sqlarea可以查出library cache中所有语句的查询计划。先从v$sqlarea中得到语句的地址,然后在由v$sql_plan查出它的查询计划:
SQL> select lpad(' ', 2*(level-1))||operation "Operation",
    2           options "Options",
    3           decode(to_char(id), '0', 'Cost='||nvl(to_char(position), 'n/a'), object_name) "Object Name",
    4           substr(optimizer, 1, 6) "Optimizer"
    5     from v$sql_plan a
    6    start with address = 'C0000000FCCDEDA0'
    7    and id = 0
    8    connect by prior id = a.parent_id
    9    and prior a.address = a.address
10    and prior a.hash_value = a.hash_value;

Operation             Options                Object Name            Optimizer
------------------- -------------------- -------------------- ---------
SELECT STATEMENT                           Cost=0                 CHOOSE
    NESTED LOOPS
      INDEX             RANGE SCAN             CSS_BL_CNTR_IDX1       ANALYZ
      INDEX             RANGE SCAN             CSS_BKG_BL_ASSN_UQ1    ANALYZ

SQL>

======================================================

分享到:
评论

相关推荐

    Oracle中SQL语句执行效率的查找与解决

    ### Oracle SQL执行效率:查找与解决 #### 一、资源消耗分析 在Oracle中,SQL语句执行效率低下通常表现为资源过度消耗,这可能包括CPU时间、内存使用、磁盘I/O等。具体分析可从以下几个方面入手: 1. **响应时间...

    oracle优化sql执行效率-表分析

    为提高oracle的sql执行效率,优化性能,通过oracle表分析功能进行调整,能加快sql查询效率2倍以上

    Oracle的SQL语句执行效率问题查找与解决方法文.pdf

    Oracle SQL 语句执行效率问题查找与解决方法 一、 Oracle SQL 语句执行效率问题查找方法 Oracle 数据库系统中, SQL 语句的执行效率问题是一个非常重要的问题。在实际应用中,我们经常会碰到一些性能不佳的 SQL ...

    oracle查看执行最慢与查询次数最多的sql语句

    总之,监控和分析SQL执行次数与效率是Oracle数据库性能调优的关键环节。定期检查这些信息可以帮助预防并发问题,提高系统整体性能,并确保数据库资源的高效利用。希望本文提供的示例和方法对你的工作有所帮助,如果...

    ORACLE 优化sql语句提高oracle执行效率 .doc

    ORACLE 优化 SQL 语句提高 Oracle 执行效率 Oracle 是一个功能强大的关系数据库管理系统,然而,如果不正确地使用 SQL 语句,可能会导致执行效率低下。为了提高 Oracle 的执行效率,需要遵循一些最佳实践。下面是...

    oracle 查看当前会话执行的sql语句

    除了查看SQL语句本身,我们还需要关注会话的等待事件,这些事件可能会影响SQL语句的执行效率。 ```sql -- 查询当前会话的等待事件 select event, count(*) from v$session where event not in ('SQL*...

    提高Oracle中SQL的执行效率

    ### 提高Oracle中SQL的执行效率 在Oracle数据库中,SQL查询性能的优化对于提升整个系统的响应速度至关重要。本文将详细介绍几种有效的方法来提高Oracle中SQL的执行效率,包括选择合适的表名顺序、优化WHERE子句中的...

    oracle怎么查看执行计划

    在Oracle数据库管理中,查看SQL语句的执行计划是一项重要的技能,这有助于优化查询性能、诊断性能问题等。AUTOTRACE是Oracle提供的一种强大的工具,用于自动展示SQL语句的执行计划以及相关统计信息,帮助DBA和开发...

    Oracle提高SQL查询效率(SQL优化).doc

    Oracle 在内部执行了许多工作:解析 SQL 语句、估算索引的利用率、绑定变量、读数据块等。因此,减少访问数据库的次数可以提高查询效率。 五、在 SQL*Plus, SQL*Forms 和 Pro*C 中重新设置 ARRAYSIZE 参数 可以...

    Linux下定时自动执行Oracle_SQL

    本文将深入探讨如何在Linux环境下设置Crontab来定期执行Oracle SQL脚本,这一过程不仅能够提高工作效率,还能确保数据的及时更新与准确性。 ### 关键知识点详解 #### Crontab:Linux下的任务调度工具 Crontab是...

    优化sql语句执行效率几点注意事项

    随着技术的发展,新的优化策略和工具不断出现,保持学习和适应能力是提高SQL执行效率的关键。 总之,优化SQL语句执行效率是一个多方面的工作,需要结合具体业务场景,综合运用索引策略、SQL编写技巧、数据库配置和...

    Oracle的SQL监视工具SQLTracker

    总之,SQLTracker作为一款高效的Oracle SQL监视工具,它能帮助数据库管理员和开发人员深入理解SQL执行情况,及时发现并解决性能问题,从而提高数据库系统的响应速度和稳定性。在Windows 11环境下无须额外安装.NET ...

    oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句

    在这个场景中,我们可以利用批处理文件来简化Oracle数据库的操作,如删除用户、创建用户、创建表和触发器,以及执行其他SQL语句。 首先,我们需要了解如何在批处理文件中连接Oracle数据库。这通常通过Oracle的...

    ORACLE_SQLDeveloper使用教程

    - SQL Developer 提供了工具帮助优化 SQL 语句,提高执行效率。 3. **SQL 脚本管理:** - 可以将常用的 SQL 语句保存为脚本文件,便于重复使用。 - SQL Developer 支持脚本文件的管理,包括创建、编辑和执行。 ...

    Oracle数据库sql语句 跟踪器

    1. **实时监控**:用户可以设置SQL Monitor来实时跟踪特定的SQL语句,或者对整个数据库的SQL执行情况进行全局监控。 2. **性能指标**:显示每个SQL语句的执行时间、CPU使用率、I/O操作、缓冲区命中率等关键指标,...

    ORACLE+SQL效率优化.rar

    首先,了解SQL执行效率的基础在于理解查询执行计划。Oracle使用解析器解析SQL语句,然后生成执行计划,这个计划决定了数据如何被检索和处理。通过分析执行计划,我们可以发现潜在的性能瓶颈,如全表扫描、索引不当或...

    ORACLE SQL语句执行效率研究.pdf

    在数据库管理系统中,尤其是在使用Oracle数据库时,SQL语句的执行效率对于保证系统性能至关重要。在《ORACLE SQL语句执行效率研究》这篇文章中,作者魏彬深入分析了影响SQL语句执行效率的各种因素,并探讨了提高查询...

    压测Oracle的SQL语句的性能情况

    2. **绑定变量**:使用绑定变量可以防止硬解析,提高SQL执行效率,减少解析开销。 3. **执行计划**:通过EXPLAIN PLAN分析SQL执行路径,了解数据库如何处理查询,找出可能导致性能问题的步骤。 4. **索引策略**:...

    Oracle查看SQL执行计划SQL性能分析.docx

    ### Oracle查看SQL执行计划与SQL性能分析 #### 一、引言 在数据库管理与优化领域,SQL执行计划是评估查询效率的关键因素之一。通过理解并优化SQL执行计划,可以显著提升应用程序的性能。本文将详细介绍如何在...

    Oracle批量执行传多个参数多个SQL文件

    在Oracle数据库管理中,批量执行SQL脚本是常见的任务...通过以上方法,我们可以高效地在Oracle中批量执行多个带参数的SQL文件,实现自动化处理,提升工作效率。在实际应用中,可以根据具体需求和环境选择最适合的方案。

Global site tag (gtag.js) - Google Analytics