`

多种方法查看Oracle SQL执行计划

阅读更多

一.在线查看执行计划表
如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
1.explain plan
  for
  select * from ......
2.select * from table(DBMS_XPLAN.Display);

二.使用oracle第三方工具:
plsql developer(F5)
Toad (Ctrl+E)

三.使用SQL*PLUS:
如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
如果PLUSTRACE角色不存在,执行
$ORACLE_HOME/sqlplus/admin/plustrce.sql

1.sqlplus / as sysdba
  set autotrace on;

 

关于Autotrace几个常用选项的说明:
  SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
  SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
  SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
  SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
  SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询


2.执行sql

四.sql trace
1.alter session set sql_trace=true;
2.执行sql
3.alter session set sql_trace=false;
4.查看相应的sql trace文件。

五.诊断事件(10046)
1.alter session set events '10046 trace name context forever,level 12';
2.执行sql
3.alter session set events '10046 trace name context off';
3.查看相应的sql trace文件。

 可利用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 trace file_identifier='yourname';

  3、执行SQL语句。

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

  [oracle@q1test01~] $tkprof/oracle/admin/orcl/udump/orcl_ora_10266_yourname.trc/oracle/yourname.txtexplain=user/pwdaggregate=yessys=nowaits=yessort=fchela

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

  sys@ORCL>alter session set sql_trace=false;

分享到:
评论

相关推荐

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

    Oracle提供了多种工具来分析SQL执行计划,包括EXPLAIN PLAN和AUTOTRACE。通过这些工具,可以详细查看SQL语句如何访问表和索引,以及执行过程中涉及的操作类型。 #### 二、执行计划优化 Oracle数据库的执行计划选择...

    oracle11g执行计划管理-(讲解如何固定sql的执行计划)

    在11g之前,管理员可以通过存储大纲(Stored Outlines)或SQL Profile等手段来固定执行计划,但这些方法需要手动操作,不够灵活且耗时。 ##### 执行计划管理的重要性 SQL语句的性能直接受其执行计划的影响。执行...

    SQL执行计划简单分析

    Oracle 数据库提供了多种方法来查看 SQL 语句的执行计划,例如使用 PL/SQL Developer、EM 或者 SQLPLUS 工具等。下面我们将使用 SQLPLUS 工具来分析 SQL 语句的执行计划。 使用 SQLPLUS 查看执行计划 -------------...

    Linux下定时自动执行Oracle_SQL

    在IT领域,尤其是在数据库管理和系统自动化操作中,利用Linux下的Crontab实现Oracle SQL的定时自动执行是一项极为实用且高效的技术。本文将深入探讨如何在Linux环境下设置Crontab来定期执行Oracle SQL脚本,这一过程...

    ORACLE的执行计划详解文档

    本文档详细解释了 ORACLE 的执行计划背景知识,包括共享 SQL 语句、执行计划的存储和共享、绑定变量的使用、执行计划的生成和共享、执行计划的优化等方面的内容。 一、共享 SQL 语句 ORACLE 对相同的 SQL 语句进行...

    oracle获取执行计划全部方法

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

    oracle sql_tuning

    1. **SQL执行计划**:SQL执行计划是Oracle解析器为每个SQL语句制定的执行策略,包括表的扫描方式(全表扫描或索引扫描)、连接顺序、排序操作等。理解执行计划有助于找出性能瓶颈并进行优化。 2. **绑定变量**:...

    ORACLE SQL性能优化系列

    因此,当你执行一个 SQL 语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE 就能很快获得已经被解析的语句以及最好的执行路径。ORACLE 的这个功能大大地提高了 SQL 的执行性能并节省了内存...

    ORACLE_SQLDeveloper使用教程

    本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...

    Oracle SQL Developer 使用说明

    本文档将深入讲解Oracle SQL Developer的使用方法,帮助用户充分利用这款工具提升工作效率。 1. **安装与启动** - 下载:首先,你需要从Oracle官网下载最新版本的SQL Developer安装包。 - 安装:按照安装向导的...

    Oracle-SQL.rar_oracle_oracle sql_sql

    10. **数据库连接与管理工具**:如SQL*Plus、SQL Developer等,是与Oracle数据库交互的常用工具,它们能帮助我们执行SQL语句,管理数据库对象,以及监控数据库状态。 通过这份“Oracle SQL.ppt”,初学者可以逐步...

    Oracle 执行计划

    Oracle执行计划是数据库执行SQL语句前确定的操作步骤序列。...它更侧重于提供一个关于如何阅读和理解Oracle SQL执行计划的基础说明。通过实践和学习,用户可以逐渐深化对执行计划的理解,并在此基础上优化SQL语句。

    Oracle解释计划 执行计划

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

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    Oracle的SQL优化与调优机制复杂多样,涵盖了从SQL语句的编写、执行计划的选择、到资源管理的全方位调优方法。为了深入理解Oracle SQL优化与调优机制,需要掌握以下几个核心知识点。 首先,要掌握Oracle SQL的基本...

    Oracle SQL(SQL for Oracle)

    Oracle SQL,全称为结构化查询语言在Oracle数据库环境中的应用,是数据库管理员和开发人员用于检索、更新和管理Oracle数据库的核心工具。Oracle SQL是SQL标准的扩展,它提供了许多特有的功能,以满足企业级数据库...

    ORACLE SQL执行优化

    Oracle SQL执行优化是数据库性能调优的关键环节,主要涉及如何高效地执行SQL查询。本文将深入探讨Oracle常用表连接机制和索引机制,以及如何理解执行计划中的关键概念。 首先,我们要了解ROWID的概念。ROWID是...

    oracle SQL语法大全

    Oracle SQL,全称为结构化查询语言,是用于管理和操作Oracle数据库的强大工具。它允许用户查询、更新、插入和删除数据,以及创建和管理数据库对象。本资料“Oracle SQL语法大全”将全面涵盖Oracle SQL的基础概念、...

Global site tag (gtag.js) - Google Analytics