`
JEmql
  • 浏览: 62402 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

oracle中跟踪sql执行计划的方法

阅读更多

不论是做为开发DBA还是维护DBA,总是或多或少地遇到SQL执行效率或者说SQL调优问题,查看执行计划是必须的。一般我们可以用3种方法查看:

  一、explain plan for

  举例就足以说明其用法  

sys@ORCL> explain plan for
  
2 select sysdate from dual;
  
Explained.
  
sys@ORCL> select * from table(dbms_xplan.display());
  PLAN_TABLE_OUTPUT
  
----------------------------------------------------------------------------------------------------
  
--------------------------------------------------------------------
  
| Id | Operation | Name | Rows | Bytes | Cost |
  
--------------------------------------------------------------------
  
| 0 | SELECT STATEMENT | | | | |
  
| 1 | TABLE ACCESS FULL | DUAL | | | |
  
--------------------------------------------------------------------
  
Note: rule based optimization
  9 rows selected.

  二、利用TKPROF工具

  TKPROF是一个用于分析oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是跟踪用户的会话并且使用TKPROF工具的排序功能格式化输出,从而找出有问题的SQL语句。

  TKPROF命令后面的选项及输出文件各个列的含义在这里不做详细的介绍。 google一下就会有很多资料。

  下面简单描述一下TKPROF工具的使用步骤:

  1、在session级别设置sql_trace=true

 sys@ORCL> alter session set sql_trace=true;
  Session altered.

  如果要在pl/sql中对session级别设置true,可以使用dbms_system这个包:

  sys@ORCL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true);

  2、指定一下生成的trace文件的名字,便于查找:  

sys@ORCL> alter session set tracefile_identifier='yourname';

  3、执行SQL语句。

4、利用TKPROF工具格式化输出的trace 文件:

 [oracle@q1test01 ~] $ tkprof /oracle/admin/orcl/udump/orcl_ora_10266_yourname.trc /oracle/yourname.txt explain=user/pwd aggregate=yes sys=no waits=yes sort=fchela

  5、查看生成的文件再设置sql_trace=false: 

sys@ORCL> alter session set sql_trace=false;

  三、set autotrace on

  此种方法最常用,关于如何设置sql*plusautotrace这里也不做详细介绍,因为google上面资料确实太多了。有心的朋友可以去找找,保证有一大堆适合你的资料。

  举个例子,这种方法简单易懂: 

ctoc@ORCL> set autotrace on
  
ctoc@ORCL> select sysdate from dual;
  
SYSDATE
  
---------
  
25-JUN-08
  
Execution Plan
  
----------------------------------------------------------
  
0 SELECT STATEMENT ptimizer=CHOOSE
  
1 0 TABLE ACCESS (FULL) OF 'DUAL'
  
Statistics
  
----------------------------------------------------------
  
0 recursive calls
  
0 db block gets
  
3 consistent gets
  
0 physical reads
  
0 redo size
  
522 bytes sent via SQL*Net to client
  655 bytes received via SQL*Net from client
  
2 SQL*Net roundtrips to/from client
  
0 sorts (memory)
  
0 sorts (disk)
  1 rows processed

分享到:
评论

相关推荐

    oracle怎么查看执行计划

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

    Oracle数据库sql语句 跟踪器

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

    Oracle 中如何对会话的所有SQL进行跟踪?

    1、目的:在实际工作中,有时需将某个程序执行的所有SQL查出来,而程序在Oracle中与会话均可对应,故可通过本文脚本对会话的所有SQL进行跟踪,转换后即可还原程序对Oracle的操作。 2、适用场景:在源码无法拿到,但...

    如何使用oracle提供的SQL_TRACE来跟踪sql的执行情况

    如何使用oracle提供的SQL_TRACE来跟踪sql的执行情况?Sql性能非常差的时候,oracle提供了SQL_TRACE来跟踪sql的执行情况。注:分析sql的方式比较多,还有根据优化器、sql执行计划来分析。SQL_TRACE能够将sql执行的过程...

    SQLMonitor oracle跟踪SQL工具

    SQLMonitor提供了友好的用户界面,可以方便地查看和分析SQL执行情况,包括执行时间、资源消耗、执行计划等关键信息。此外,它还支持导出跟踪结果,以便进一步的分析和分享。 在数据跟踪方面,SQLMonitor不仅限于...

    Oracle数据库关于SQL的执行计划

    在 Oracle 数据库中,执行 SQL 查询之前会先生成一个执行计划(Execution Plan),该计划由 Oracle 的优化器(Optimizer)根据一系列规则或成本计算得出。优化器的主要目标是为查询选择最有效的访问路径,从而最小化...

    oracle sql 跟踪

    在Oracle数据库系统中,SQL跟踪可以帮助我们获取到应用程序与数据库交互时执行的SQL语句及其详细信息,包括执行计划、绑定变量值等。这在解决性能瓶颈、分析查询行为或验证代码更改的影响时非常有用。 首先,SQL...

    sql oracle跟踪器

    SQL Oracle跟踪器是一种强大的工具,专门用于监测和分析Oracle数据库中的SQL语句执行情况。它在数据库性能优化、问题诊断和资源管理等方面扮演着至关重要的角色。SQL Monitor 2.4.3.6是该工具的一个版本,它提供了一...

    Oracle SQL语句跟踪

    在Oracle数据库系统中,SQL语句跟踪能够帮助我们收集关于SQL执行的详细信息,包括执行计划、资源消耗、等待事件等,这对于理解和改进数据库的性能至关重要。 首先,我们来了解Oracle SQL语句跟踪的基础知识。在...

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

    它不仅记录SQL语句的历史执行信息,还能分析出SQL的执行计划,帮助识别是否存在索引不当、全表扫描等问题。此外,通过对比不同时间段的性能数据,可以找出数据库性能变化的原因,为性能调优提供决策依据。 再者,...

    Oracle的SQL监视工具SQLTracker

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

    SQLTracker oracle跟踪工具

    对于开发人员而言,SQLTracker也能辅助进行代码调试,通过跟踪SQL执行,可以快速定位代码中的问题,提高开发效率。 9. **优化建议** 高级的SQLTracker可能还会提供一些自动化的优化建议,如提示改进索引策略,...

    如何收集Oracle进程中SQL跟踪信息

    总之,通过上述方法,我们可以有效地收集和分析Oracle进程中的SQL跟踪信息,从而提升数据库性能,解决性能问题。在实际操作中,应根据具体情况选择合适的方法,并注意跟踪文件的管理和分析,以便更好地理解和优化SQL...

    ORACLE数据库查看执行计划

    在Oracle数据库环境中,SQL性能优化是提升应用系统性能的关键环节,因为许多性能问题往往源于SQL语句执行效率低下。为了优化SQL,理解并分析执行计划是必不可少的步骤。执行计划揭示了Oracle如何处理一个SQL查询,...

    SQL Tracker Oracle跟踪工具(支持64位)

    SQLTracker是监视使用Oracle数据库的应用程序,支持win7,win10 64位执行时对数据库进行操作的sql的工具,包含32位版和64位版,绿色软件,解压缩后就能用测试使用C/S架构的ERP程序,这个架构的好处就是局域网使用...

    Oracle执行计划与SQL优化实例.pptx

    本文旨在解析并扩展此PPTX文件中提及的重要知识点,涵盖执行计划的概念、获取方法、解读技巧以及SQL优化策略。 ### 执行计划的概念与获取 #### 什么是执行计划? 执行计划是Oracle数据库为了执行SQL查询而设计的...

    oracle获取执行计划全部方法

    ### Oracle 获取执行计划全部方法详解 #### 方法一:Explain Plan for 方式 - **应用场景**:当某个 SQL 查询执行时间过长甚至无法返回结果时,这种方法尤其适用。 - **步骤**: 1. 使用 `EXPLAIN PLAN FOR` 命令...

    Oracle高性能SQL调整

    资源名称:Oracle高性能SQL调整内容简介:本书由Oracle公司授权,向读者详尽阐述如何调整SQL语句、查看内部执行计划和更改执行计划以提高语句性能。主要内容包括:理解SQL调整在Oracle总体微调中地地位,使用诸如...

    Oracle解释计划 执行计划

    查询时,可以使用sql_id和sql_child_number字段来定位特定的SQL执行计划。 3. 查询自动工作量库或statspack表:自动工作量库(AWR)和statspack是Oracle提供的性能监控工具,通过这些工具可以收集数据库的性能统计...

    oracle数据库跟踪工具

    SQLTracker作为Oracle SQL监视工具,它的核心功能是跟踪和记录SQL语句的执行情况。在日常运营中,如果发现应用程序响应慢或者数据库性能瓶颈,SQLTracker能够帮助定位问题源头。通过实时监控,它能够显示SQL查询的...

Global site tag (gtag.js) - Google Analytics