不论是做为开发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:
三、set autotrace on
此种方法最常用,关于如何设置sql*plus的autotrace这里也不做详细介绍,因为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数据库管理中,查看SQL语句的执行计划是一项重要的技能,这有助于优化查询性能、诊断性能问题等。AUTOTRACE是Oracle提供的一种强大的工具,用于自动展示SQL语句的执行计划以及相关统计信息,帮助DBA和开发...
1. **实时监控**:用户可以设置SQL Monitor来实时跟踪特定的SQL语句,或者对整个数据库的SQL执行情况进行全局监控。 2. **性能指标**:显示每个SQL语句的执行时间、CPU使用率、I/O操作、缓冲区命中率等关键指标,...
1、目的:在实际工作中,有时需将某个程序执行的所有SQL查出来,而程序在Oracle中与会话均可对应,故可通过本文脚本对会话的所有SQL进行跟踪,转换后即可还原程序对Oracle的操作。 2、适用场景:在源码无法拿到,但...
如何使用oracle提供的SQL_TRACE来跟踪sql的执行情况?Sql性能非常差的时候,oracle提供了SQL_TRACE来跟踪sql的执行情况。注:分析sql的方式比较多,还有根据优化器、sql执行计划来分析。SQL_TRACE能够将sql执行的过程...
SQLMonitor提供了友好的用户界面,可以方便地查看和分析SQL执行情况,包括执行时间、资源消耗、执行计划等关键信息。此外,它还支持导出跟踪结果,以便进一步的分析和分享。 在数据跟踪方面,SQLMonitor不仅限于...
在 Oracle 数据库中,执行 SQL 查询之前会先生成一个执行计划(Execution Plan),该计划由 Oracle 的优化器(Optimizer)根据一系列规则或成本计算得出。优化器的主要目标是为查询选择最有效的访问路径,从而最小化...
在Oracle数据库系统中,SQL跟踪可以帮助我们获取到应用程序与数据库交互时执行的SQL语句及其详细信息,包括执行计划、绑定变量值等。这在解决性能瓶颈、分析查询行为或验证代码更改的影响时非常有用。 首先,SQL...
SQL Oracle跟踪器是一种强大的工具,专门用于监测和分析Oracle数据库中的SQL语句执行情况。它在数据库性能优化、问题诊断和资源管理等方面扮演着至关重要的角色。SQL Monitor 2.4.3.6是该工具的一个版本,它提供了一...
在Oracle数据库系统中,SQL语句跟踪能够帮助我们收集关于SQL执行的详细信息,包括执行计划、资源消耗、等待事件等,这对于理解和改进数据库的性能至关重要。 首先,我们来了解Oracle SQL语句跟踪的基础知识。在...
它不仅记录SQL语句的历史执行信息,还能分析出SQL的执行计划,帮助识别是否存在索引不当、全表扫描等问题。此外,通过对比不同时间段的性能数据,可以找出数据库性能变化的原因,为性能调优提供决策依据。 再者,...
总之,SQLTracker作为一款高效的Oracle SQL监视工具,它能帮助数据库管理员和开发人员深入理解SQL执行情况,及时发现并解决性能问题,从而提高数据库系统的响应速度和稳定性。在Windows 11环境下无须额外安装.NET ...
对于开发人员而言,SQLTracker也能辅助进行代码调试,通过跟踪SQL执行,可以快速定位代码中的问题,提高开发效率。 9. **优化建议** 高级的SQLTracker可能还会提供一些自动化的优化建议,如提示改进索引策略,...
总之,通过上述方法,我们可以有效地收集和分析Oracle进程中的SQL跟踪信息,从而提升数据库性能,解决性能问题。在实际操作中,应根据具体情况选择合适的方法,并注意跟踪文件的管理和分析,以便更好地理解和优化SQL...
在Oracle数据库环境中,SQL性能优化是提升应用系统性能的关键环节,因为许多性能问题往往源于SQL语句执行效率低下。为了优化SQL,理解并分析执行计划是必不可少的步骤。执行计划揭示了Oracle如何处理一个SQL查询,...
SQLTracker是监视使用Oracle数据库的应用程序,支持win7,win10 64位执行时对数据库进行操作的sql的工具,包含32位版和64位版,绿色软件,解压缩后就能用测试使用C/S架构的ERP程序,这个架构的好处就是局域网使用...
本文旨在解析并扩展此PPTX文件中提及的重要知识点,涵盖执行计划的概念、获取方法、解读技巧以及SQL优化策略。 ### 执行计划的概念与获取 #### 什么是执行计划? 执行计划是Oracle数据库为了执行SQL查询而设计的...
### Oracle 获取执行计划全部方法详解 #### 方法一:Explain Plan for 方式 - **应用场景**:当某个 SQL 查询执行时间过长甚至无法返回结果时,这种方法尤其适用。 - **步骤**: 1. 使用 `EXPLAIN PLAN FOR` 命令...
资源名称:Oracle高性能SQL调整内容简介:本书由Oracle公司授权,向读者详尽阐述如何调整SQL语句、查看内部执行计划和更改执行计划以提高语句性能。主要内容包括:理解SQL调整在Oracle总体微调中地地位,使用诸如...
查询时,可以使用sql_id和sql_child_number字段来定位特定的SQL执行计划。 3. 查询自动工作量库或statspack表:自动工作量库(AWR)和statspack是Oracle提供的性能监控工具,通过这些工具可以收集数据库的性能统计...
SQLTracker作为Oracle SQL监视工具,它的核心功能是跟踪和记录SQL语句的执行情况。在日常运营中,如果发现应用程序响应慢或者数据库性能瓶颈,SQLTracker能够帮助定位问题源头。通过实时监控,它能够显示SQL查询的...