zoukankan      html  css  js  c++  java
  • 执行计划准备篇

    目前我所知道的有两种方法查看执行计划;

    ●一个是用PLSQL Developer工具,用F5执行语句就能看见执行计划

    QQ截图未命名

    ●另一个就是用autotrace语句(必须在SQL*Plus内运行)

    我装的是oracle10g,默认不能直接调用这个语句,必须先设置一下:

    1.用sys用户运行脚本ultxplan.sql
    建立这个表的脚本是:(UNIX:$ORACLE_HOME/rdbms/admin, Windows:%ORACLE_HOME%\rdbms\admin)ultxplan.sql。
    SQL> connect
    sys/sys@colm2 as sysdba;
    SQL> @C:\oracle\ora92\rdbms\admin\utlxplan.sql;
    SQL> create public synonym plan_table for plan_table; --建立同义词
    SQL> grant all on plan_table to public;--授权所有用户
    2.要在数据库中建立一个角色plustrace,用sys用户运行脚本plustrce.sql来创建这个角色,这个脚本在目录(UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%\sqlplus\admin)中;
    SQL> @C:\oracle\ora92\sqlplus\admin\plustrce.sql;
    3.然后将角色plustrace授予需要autotrace的用户
    SQL>grant plustrace to public;

    通过设置AUTOTRACE系统变量可以控制这个报告:
    set autotrace off:  不生成autotrace报告,这是默认设置
    set autotrace on explain:  autotrace报告只显示优化器执行路径
    set autotrace on statistics: autotrace报告只显示sql语句的执行统计信息
    set autotrace on: autotrace报告既包括优化器执行路径,又包括SQL语句的执行统计信息。 
    set autotrace traceonly: 这与set autotrace on类似,但是不显示用户的查询输出(如果有的话)

    (参考自:http://blog.sina.com.cn/s/blog_4b8abbd60100augv.html

    更新一下开关的说明

     

    set auto[race] {on|off|trace[only]} [exp[plan]][stat[litics]]

    set autot off

    对话禁止使用autotrace命令

    set autot on

    这个命令包括expstat

    执行语句

    生成explain plan

    生成统计信息

    set auto trace

    不执行sql命令,这同样包括expstat

    生成explain plan

    生成统计信息

    set autot trace exp stat

    set autot trace相同

    set autot trace exp

    不执行sql语句

    生成explain plan

    set autot trace stat

    不执行sql语句

    生成统计信息

    以下是执行set autotrace on出来的内容

    SQL> set autotrace on;

    SQL> select * from dept;

        DEPTNO DNAME          LOC
    ---------- -------------- -------------
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON


    执行计划
    ----------------------------------------------------------
    Plan hash value: 3383998547

    --------------------------------------------------------------------------
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    --------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |      |     4 |   120 |     3   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS FULL| DEPT |     4 |   120 |     3   (0)| 00:00:01 |
    --------------------------------------------------------------------------

    Note
    -----
       - dynamic sampling used for this statement


    统计信息
    ----------------------------------------------------------
              4  recursive calls
              0  db block gets
             16  consistent gets
              0  physical reads
              0  redo size
            641  bytes sent via SQL*Net to client
            400  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              4  rows processed

    酱紫执行计划应该都知道怎么使用了吧。下次讲执行计划怎么看。

  • 相关阅读:
    [Micropython]发光二极管制作炫彩跑马灯
    如何在MicroPython TPYBoard 添加自定义类库
    micropython TPYBoard v202 超声波测距
    简易排水简车的制作 TurnipBit 系列教程
    TPYBoard v102 驱动28BYJ-48步进电机
    使用mksdcard管理虚拟SD卡
    使用 DX 编译 Android应用
    常用ADB的用法
    在命令行创建、删除和浏览AVD、使用android模拟器
    Android-SDK下目录结构
  • 原文地址:https://www.cnblogs.com/my36z/p/1844772.html
Copyright © 2011-2022 走看看