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

ORACLE执行计划的查看

阅读更多

1.  采用 explain plan

 

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

    打开 cmd

    sqlplus /nolog

    conn test/test123@test

    将 $ORACLE_HOME/rdbms/admin/utlxplan.sql 的内容粘贴到 cmd ,然后回车执行。

 

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

 

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

    如:

    SQL> explain plan for select * from student;

 

    Explained.

 

    SQL> select * from table(DBMS_XPLAN.Display);

 

    也可以查找 SQL ID 后再看执行计划

    select sql_id,address,hash_value, executions, sql_text from v$sql where sql_text like '%select id from student%';

    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id', 0, 'ADVANCED'));

 

     DBMS_XPLAN是用来展现执行计划的, 通过display函数我们可以展示explain plan方法获得的执行计划,通过display_cursor函数可以展示动态性能视图(v$sql_plan和v$sql_plan_statistics等)中获得的执行计划。explain plan只是一个评估的执行计划,并不是真正SQL执行的路径,而动态性能视图是SQL执行过程中的执行路径,所以说,更准确一些。

 

2.  使用 oracle 第三方工具

   a. plsql developer

  写好SQL 后,按F5

   b.Toad

  写好SQL 后,按Ctrl+E

3.  使用 Autotrace

  

     Set timing on -- 记录所用时间

     Set autot trace -- 自动记录执行计划

 

     关于Autotrace 几个常用选项的说明:

 

     SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式

 

     SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE 只显示优化器执行路径报告

 

     SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息

 

     SET AUTOTRACE ON ----------------- 包含执行计划和统计信息

 

     SET AUTOTRACE TRACEONLY ------ set autotrace on ,但是不显示查询

 

 

    例:

SQL> SET AUTOTRACE ON

SQL> select id from student;

 

4.  sql trace

 

     a.alter session set sql_trace=true;

 

     b. 执行 sql

 

     c.alter session set sql_trace=false;

 

     d. 利用 TKPROF 工具格式化输出的 trace 文件。

    命令为:Tkprof   文件路径   d:1.txt

    注: tkprof 直接在 cmd 下就可以输入

 

    任何一条 SQL ,都包含三个步骤

    分析 (Parse):SQL 的分析阶段

    执行 (Execute):SQL 的执行阶段

    数据提取 (Fetch): 数据提取阶段 ( 数据提取不一定一次就可以完成 )

 

    COUNT: 计数器,表示当前的操作被执行了多少次。

    CPU: 当前的操作消耗 CPU 的时间(单位秒)

    ELAPSED: 当前的操作一共用时多少。

    DISK: 当前操作的物理读(磁盘 I/O 次数);

    QUERY: 当前操作的一致性读方式读取的数据快数(通常是查询时使用)

    CURRENT: 当前操作的 CURRENT 方式读取的数据块数(通常是修改时使用)

    ROWS: 当前操作处理的数据记录数

 

    CR :一致性度 PR :物理读, PW: 物理写, TIME 就不用解释了吧单位是 us( 微秒 )

 

5.  诊断事件 (10046)

alter session set events '10046 trace name context forever ,level 12' ; 

select * from student;

alter session set events '10046 trace name context off' ;

tkprof  文件路径   d:5.txt

6.  10053 事件

启用 10053 事件

ALTER SESSION SET EVENTS='10053 trace name context forever, level 1';

ALTER SESSION SET EVENTS='10053 trace name context forever, level 2';

关闭 10053 事件:

ALTER SESSION SET EVENTS '10053 trace name context off';

如:

ALTER SESSION SET EVENTS='10053 trace name context forever, level 2';

select * from student;

ALTER SESSION SET EVENTS '10053 trace name context off';

 

注意:
1
sqlplus 中打开 autotrace 看到的执行计划实际上是用 explain plan 命令得到的, explain plan 命令不会进行 bind peeking 。应该通过 v$sql_plan 查看 SQL 的真实的执行计划。
2
10053 只对 CBO 有效,而且如果一个 sql 语句已经解析过,就不会产生新的 trace 信息。 (

刷新共享池,alter system flush shared_pool

3 10053 事件产生的 trace 文件不能用 tkprof 格式化。

4 、执行计划的查看顺序是:从内到外   从上到下。对于不并列的,靠右的先执行:对于并列的,靠上的先执行。

分享到:
评论

相关推荐

    oracle 执行计划 详解

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

    Oracle执行计划参数解释

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

    oracle怎么查看执行计划

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

    oracle执行计划解读

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

    Oracle执行计划分析

    ### Oracle执行计划分析 #### 一、概述 在Oracle数据库管理中,优化SQL查询性能是一项至关重要的任务。其中,理解并分析SQL执行计划是提升查询效率的关键步骤之一。执行计划是指Oracle数据库根据特定的SQL语句所...

    oracle执行计划详解

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

    Oracle执行计划详解

    Oracle执行计划详解,包括oracle执行顺序和索引详细介绍

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

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

    oracle执行计划建立与阅读

    Oracle执行计划是数据库管理系统在处理SQL语句时的预估工作流程,它是Oracle优化器根据当前数据分布、索引情况和系统资源等信息选择的最佳执行策略。了解和分析执行计划对于提升SQL语句的性能至关重要。 一、生成...

    Oracle执行计划介绍与测试.pdf

    通过深入理解Oracle执行计划的查看、控制和优化方法,数据库管理员和开发人员能够更有效地管理数据库性能,确保在不同场景下都能获得最佳的查询效率。此外,合理利用HINT和OUTLINE不仅能提升单个查询的速度,还能...

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

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

    Oracle 执行计划、表分区

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

    Oracle 执行计划PPT

    Oracle 执行计划是数据库管理系统在处理SQL查询时制定的一系列步骤,用于高效地检索和处理数据。它是Oracle数据库优化器(Optimizer)根据统计信息、成本估算和已存在的索引等信息生成的。优化器有两种主要的工作...

    ORACLE数据库查看执行计划

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

    oracle执行计划文档

    除了以上概念,Oracle执行计划还包括其他访问方法,如索引扫描(Index Scan)、索引唯一扫描(Index Unique Scan)、索引快速全扫描(Index Fast Full Scan)以及各种类型的连接操作,如嵌套循环(Nested Loop)、...

    怎样看懂Oracle的执行计划

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

    ORACLE的执行计划详解文档

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

    oracle执行计划详细解释

    oracle执行计划详细解释

Global site tag (gtag.js) - Google Analytics