`
liulanghan110
  • 浏览: 1078199 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

oracle如何查看执行计划

阅读更多

查看单个的SQL方法

一.采用explain plan

如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。

 

第一步:explain plan for select * from ......

第二步:select * from table(DBMS_XPLAN.Display)

 

二.使用oracle第三方工具

 

  a. plsql developer

      写好SQL后,按F5

 

  b.Toad

      写好SQL后,按Ctrl+E

 

三.使用SQL*PLUS:

  如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。

  如果PLUSTRACE角色不存在,执行

  $ORACLE_HOME/sqlplus/admin/plustrce.sql

 

  第一步:以sysdba身份登录SQLPLUS

  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,但是不显示查询

 

      第二步:

      执行SQL

 

四.sql trace

 

  1.alter session set sql_trace=true;

  2.执行sql

  3.alter session set sql_trace=false;

  4.查看相应的sql trace文件。

 

注:详细可以参考这篇文章:

 

http://blog.csdn.net/flg_inwind/article/details/3903809

 

五.诊断事件(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工具的使用步骤:

 

  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;

 

查看跟踪文件

 

首先

  SQL> alter session set events='10046 trace name context forever,level12‘;

 

  查找跟踪文件

 

  SQL> SELECT a.VALUE|| b.symbol|| c.instance_name|| '_ora_' || d.spid|| '.trc' trace_file

  2   FROM (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') a,

  3   (SELECT SUBSTR (VALUE, -6, 1) symbol

  4   FROM v$parameter WHERE NAME = 'user_dump_dest') b,

  5   (SELECT instance_name FROM v$instance) c,

  6   (SELECT spid FROM v$session s, v$process p, v$mystat m

  7   WHERE s.paddr= p.addr AND s.SID = m.SID AND m.statistic# = 0) d

  8  /

 

  TRACE_FILE

 

  --------------------------------------------------------------------------------

  D:\oracle\admin\cums\udump\cums_ora_8088.trc

分享到:
评论

相关推荐

    ORACLE命令行查看实际的执行计划

    以下将详细阐述如何在Oracle命令行环境中查看实际的执行计划。 1. **登陆SQLPLUS**: SQLPLUS是Oracle提供的一种命令行工具,允许用户直接与数据库交互。首先,你需要在终端或命令提示符中启动SQLPLUS,通常输入`...

    使用plsql查看执行计划

    本篇文章将深入探讨如何使用PL/SQL来查看和理解Oracle的执行计划,以及优化器的工作原理。 首先,Oracle的优化方式主要有两种:规则基础优化(RBO,Rule-Based Optimization)和成本基础优化(CBO,Cost-Based ...

    oracle怎么查看执行计划

    ### Oracle如何使用AUTOTRACE查看执行计划 在Oracle数据库管理中,查看SQL语句的执行计划是一项重要的技能,这有助于优化查询性能、诊断性能问题等。AUTOTRACE是Oracle提供的一种强大的工具,用于自动展示SQL语句的...

    ORACLE数据库查看执行计划的方法

    执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。1:在PL/SQL下按F5查看执行计划。第三方工具toad等。很多人以为PL/SQL的执行计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL工具里面...

    oracle 执行计划 详解

    "Oracle 执行计划详解" Oracle 执行计划是数据库性能优化的关键。为了更好地理解和优化 Oracle 数据库的执行计划,我们需要了解执行计划的生成过程、优化方法和执行计划的解读方法。 执行计划生成过程 执行计划的...

    怎样看懂Oracle的执行计划

    当查看执行计划时,右侧最顶层的操作是第一个被执行的。同一级别上,如果某个操作没有子 ID,則它将首先被执行。 简单的例子 例如,以下是一个简单的执行计划: Query Plan ------------------------------------...

    Oracle执行计划参数解释

    Oracle执行计划参数解释,Oracle SQL优化的基础是看懂Oracle的执行计划,本文当系统整理了Oracle执行计划里面的各种参数。

    ORACLE数据库查看执行计划

    执行计划揭示了Oracle如何处理一个SQL查询,包括数据的访问路径、使用的索引、排序方式以及表之间的连接顺序等。本文将深入探讨如何查看执行计划,并提供优化SQL的策略。 一、执行计划的概念 执行计划是Oracle...

    ORACLE的执行计划详解文档

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

    关于Oracle中执行计划稳定性深入研究

    总之,Oracle执行计划的稳定性与数据库性能紧密相关,理解并掌握优化器的工作原理以及如何控制执行计划的选择,是优化数据库性能的关键。在基于代价的优化器模式下,虽然存在执行计划不稳定的可能,但通过合理管理和...

    Oracle的执行计划

    在深入了解Oracle执行计划之前,我们先来了解一下几个重要的概念,这些概念对于理解执行计划至关重要。 **共享SQL语句**:为了提高性能并减少资源消耗,Oracle在第一次解析某个SQL语句后,会将其以及相应的执行计划...

    Oracle数据库执行计划

    Oracle数据库执行计划是数据库管理系统在处理SQL查询时所采用的一种策略,它决定了如何最有效地从数据库中检索数据。执行计划涉及到一系列的操作,包括数据的存取方法、索引的使用、连接操作以及优化器的选择。 ...

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

    本文将详细介绍如何查看Oracle数据库中执行最慢和查询次数最多的SQL语句,以帮助DBA(数据库管理员)识别潜在的性能瓶颈。 首先,我们来看如何查询执行最慢的SQL语句。在Oracle中,可以使用`v$sqlarea`视图来获取...

    oracle执行计划详解

    oracle 执行计划详解 Oracle 执行计划是数据库性能调整的关键部分,对于想要学习 Oracle 数据库的朋友非常有帮助。下面是Oracle 执行计划的背景知识和重要概念。 共享 SQL 语句 Oracle 将 SQL 语句及解析后得到的...

    oracle执行计划解读

    Oracle 执行计划解读 Oracle 执行计划是一种查询执行路径的表示形式,它展示了 Oracle 数据库在执行查询时访问数据的路径。下面是 Oracle 执行计划的详细解读,包括执行计划的定义、访问数据的方式、执行计划层次...

    Oracle的执行计划--下

    Oracle的执行计划--下,Oracle的执行计划--下,Oracle的执行计划--下

    性能调优分析之:Oracle SQL执行计划报告生成器

    Oracle SQL执行计划分析器功能的创建3步曲: 1 首先,编译XYG_ALD_SESS_PKG的Package头。 (XYG_ALD_SESS_PKG.sql) 2 接着要建立好下面的4个视图对象。因为XYG_ALD_SESS_PKG包体会用到。(View Create Script v...

    Oracle 执行计划、表分区

    本文将深入探讨Oracle的执行计划和表分区两个重要概念,以及它们如何影响数据库性能。 执行计划是Oracle数据库处理SQL查询的一种步骤序列,它详细描述了数据如何从表中提取、如何进行排序或聚合,以及如何返回到...

Global site tag (gtag.js) - Google Analytics