`

Oracle 执行计划

 
阅读更多

  1.创建执行计划表

        脚本位于:%ORACLE_HOME%/product/11.1.0/db_1/RDBMS/ADMIN/utlxplan.sql

   

--PLAN_TABLE
create table PLAN_TABLE (
        statement_id       varchar2(30),
        plan_id            number,
        timestamp          date,
        remarks            varchar2(4000),
        operation          varchar2(30),
        options            varchar2(255),
        object_node        varchar2(128),
        object_owner       varchar2(30),
        object_name        varchar2(30),
        object_alias       varchar2(65),
        object_instance    numeric,
        object_type        varchar2(30),
        optimizer          varchar2(255),
        search_columns     number,
        id                 numeric,
        parent_id          numeric,
        depth              numeric,
        position           numeric,
        cost               numeric,
        cardinality        numeric,
        bytes              numeric,
        other_tag          varchar2(255),
        partition_start    varchar2(255),
        partition_stop     varchar2(255),
        partition_id       numeric,
        other              long,
        distribution       varchar2(30),
        cpu_cost           numeric,
        io_cost            numeric,
        temp_space         numeric,
        access_predicates  varchar2(4000),
        filter_predicates  varchar2(4000),
        projection         varchar2(4000),
        time               numeric,
        qblock_name        varchar2(30),
        other_xml          clob
);

 

        也可以创建公共计划表

         1.通过运行utlxplan.sql脚本,以自己选择的模式创建计划表。

         2.创建计划表的公共同名对象。

         3.将对计划表的访问授权为公共。 

CREATE PUBLIC SYNONYM plan_table FOR plan_table;
GRANT SELECT,INSERT,UPDATE,DELETE ON plan_table TO PUBLIC;

 

    2.计划表中常用列:

 列  描述
 statement_id  赋给执行计划的名称
 operation

 执行的数据库操作,可以是:

  •     扫描表
  •     扫描索引
  •     使用索引访问表行
  •     连接两个表
  •     排序行集合

例如,访问表的操作是TABLE ACCESS

 options  操作中选项的名称。例如,全表扫描的选项是FULL
 object_name  操作中引用的数据库对象的名称
 object_type  对象的属性。例如,唯一索引的属性为UNIQUE
 id  执行计划中赋给该操作的数字
 parent_id  执行计划中当前步骤的父数字。parent_id值与父步骤中的id值有关
 position  具有相同parent_id的步骤的处理顺序
 cost  操作的工作单元的估计值。基于成本的优化使用磁盘I/O、CPU使用率和内存利用率作为工作单元。所以,成本是磁盘I/O数目和执行操作所使用的CPU和内存数量的估计值

 

 

 

3.创建执行计划

EXPLAIN PLAN SET STATEMENT_ID = 'TEST_CONTENT' FOR
  SELECT C.ID, C.TITLE, C.SUBHEAD, C.SUMMARY
    FROM TEST_CONTENT C
   WHERE EXISTS (SELECT 1 FROM TEST_SORT S WHERE S.ID = C.SORT_ID);

 

 

 

 

 

 

 

 

 

4.查看执行计划

SELECT ID || DECODE(ID, 0, '', LPAD(' ', 2 * (LEVEL - 1))) || ' ' ||
       OPERATION || ' ' || OPTIONS || ' ' || OBJECT_NAME || ' ' || OBJECT_TYPE || ' ' ||
       DECODE(COST, NULL, '', 'Cost = ' || POSITION) AS EXECUTION_PLAN
  FROM PLAN_TABLE
CONNECT BY PRIOR ID = PARENT_ID
       AND STATEMENT_ID = '&v_statement_id'
 START WITH ID = 0
        AND STATEMENT_ID = '&v_statement_id';

 

将第二条SQL语句保存在 :%ORACLE_HOME%/product/11.1.0/db_1/RDBMS/ADMIN/explain_plan.sql,下次直接使用。

 

5.包含表连接的执行计划

EXPLAIN PLAN SET STATEMENT_ID = 'TEST_CONTENT2' FOR
SELECT S.ID AS SID, S.NAME, C.TITLE, SUBHEAD, SUMMARY   
  FROM TEST_CONTENT C, TEST_SORT S   
 WHERE C.SORT_ID = S.ID   
   AND C.SORT_ID = 170 

 执行上面的查看执行计划语句查看执行计划。

 

6.执行计划包括

      1)语句所引用的表的顺序

      2)语句所涉及的表的访问方法

      3)语句中连接操作所影响到的各表的连接方法。

分享到:
评论

相关推荐

    oracle 执行计划 详解

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

    Oracle执行计划参数解释

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

    oracle执行计划解读

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

    oracle执行计划建立与阅读

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

    Oracle 执行计划PPT

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

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

    ### Oracle执行计划深入解析 #### 引言 在数据库领域,尤其对于大型企业级应用,Oracle数据库因其强大的功能和稳定性而被广泛采用。在Oracle中,执行计划是数据库优化器根据SQL语句特性生成的一系列步骤,用于指导...

    oracle执行计划详解

    Oracle 执行计划详解是数据库管理系统中一个非常重要的概念。本文将详细介绍 Oracle 执行计划的相关概念、访问数据的存取方法、表之间的连接等内容,并对总结和概述,以便于理解和记忆。 一、相关的概念 1. Rowid ...

    oracle执行计划文档

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

    ORACLE执行计划和SQL调优.pptx

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

    Oracle执行计划详解

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

    Oracle执行计划与SQL优化实例.pptx

    《Oracle执行计划与SQL优化实例》这一主题深入探讨了数据库管理与优化的关键方面,尤其针对Oracle数据库环境。本文旨在解析并扩展此PPTX文件中提及的重要知识点,涵盖执行计划的概念、获取方法、解读技巧以及SQL优化...

    ORACLE执行计划和SQL调优

    ORACLE执行计划和SQL调优

    oracle执行计划详细解释

    oracle执行计划详细解释

    Oracle执行计划.ppt

    Oracle 执行计划 Oracle 执行计划是 Oracle 数据库中的一种机制,用于确定如何访问存储器,得到需要的结果集。执行计划的主要内容包括访问方式和访问顺序。下面是 Oracle 执行计划的详细知识点: 一、执行计划的...

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

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

    Oracle 执行计划稳定性

    总之,Oracle执行计划的稳定性对于数据库的高效运行具有重要意义。通过合理管理统计信息、选择合适的优化器模式、利用SQL提示和监控工具,可以有效控制执行计划的稳定性,从而提升数据库的整体性能。

    Oracle执行计划1.ppt

    "Oracle 执行计划" Oracle 执行计划是 Oracle 数据库中的一种机制,用于优化 SQL 语句的执行过程。它决定了如何访问存储器,得到需要的结果集。执行计划的主要内容包括访问方式和访问顺序。 Oracle 执行计划的生成...

Global site tag (gtag.js) - Google Analytics