`
liulanghan110
  • 浏览: 1072543 次
  • 性别: 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执行顺序和索引详细介绍

    oracle执行计划建立与阅读

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

    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执行计划详细解释

    ORACLE执行计划和SQL调优.pptx

    ORACLE 执行计划和 SQL 调优 ORACLE 执行计划和 SQL 调优是关系数据库管理系统中非常重要的概念。执行计划是 Oracle 优化器生成的,用于描述如何访问数据库中的数据的计划。execute plan 中包括了访问路径、表扫描...

Global site tag (gtag.js) - Google Analytics