zoukankan      html  css  js  c++  java
  • sql执行计划

    一、概述

    执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述,即就是对一个查询任务,做出一份怎样去完成任务的详细方案。

    如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 看懂执行计划也就成了SQL优化的先决条件。 通过执行计划定位性能问题,定位后就通过建立索引、修改sql等解决问题。

    查看sql执行计划常用方式:

    1. explain plan for

    适用场景:

    通过explain plan for命令查看SQL的执行计划,这种方法SQL并不真实执行,一般适用于上线前的SQL预审,尤其对DML语句,由于SQL不执行,不用担心对生产数据造成影响。这种方法查看的执行计划有Predicate Information,无Statistics,查看到的执行计划不一定真实,第三方工具PL/SQL Developer中F5查看执行计划也是调用的这个方法。 

     示例:我这里用的工具为datagrid

    -- 待执行的sql
    EXPLAIN PLAN FOR(select * from MEM_MEMBERS where CN_NAME like '纯子');
    -- 查看执行计划
    SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));
    -- 或者
    select * from table(dbms_xplan.display);
    
    -- 执行结果
    Plan hash value: 2532924901
    
    -------------------------------------------------------------------------------------------------------------
    | Id  | Operation                           | Name                  | Rows  | Bytes | Cost (%CPU)| Time     |
    -------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                    |                       |     1 |   314 |     2   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID BATCHED| MEM_MEMBERS           |     1 |   314 |     2   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN                  | IDX_FFP_MEMBER_CNNAME |     1 |       |     1   (0)| 00:00:01 |
    -------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       2 - access("CN_NAME"='纯子')

    参考:

    Oracle 执行计划(Explain Plan)

    Oracle之sql优化

  • 相关阅读:
    2018.09.08什么是ajax
    2018.09.03怎样让网页自适应所有屏幕宽度
    2018.08.25字符串和二维数组之间的转换
    2018.08.20MySQL常用命令总结(二)
    2018.08.15解决MySQL1290问题
    2018.08.13MySQL常用命令总结(一)
    2018.08.11MySQL无法启动错误码1067的解决方法
    2018.08.10 css中position定位问题
    2018.08.10jQuery导航栏置顶
    2018.08.07css实现图片放大
  • 原文地址:https://www.cnblogs.com/shiyun32/p/13047804.html
Copyright © 2011-2022 走看看