其他分享
首页 > 其他分享> > 获取执行计划之dbms_xplan.display_cursor()

获取执行计划之dbms_xplan.display_cursor()

作者:互联网

前提

SQL执行计划仍在Shared Pool中

函数体

DBMS_XPLAN.DISPLAY_CURSOR(                       
 sql_id        IN  VARCHAR2  DEFAULT  NULL,      
 child_number  IN  NUMBER    DEFAULT  NULL,      
 format        IN  VARCHAR2  DEFAULT  'TYPICAL');

参数

Format参数详解

拓展

dbms_xplan.display_cursor(null,null,'advanced') 仅用于SQLplus中查看刚执行过的SQL执行计划,在PL/SQL Developer中无法使用,因为工具在执行完SQL后还会执行其他的后台语句。

执行计划

dbms_xplan.display_cursor()通常搭配ALTER SESSION SET STATISTICS_LEVEL = ALL 或 /\*+ GATHER_PLAN_STATISTICS\*/

在这里插入图片描述

  1. starts:SQL执行的次数;
  2. E-Rows:执行计划预计返回的行数;
  3. A-Rows:执行计划实际返回的行数;
  4. A-Time:每一步执行的时间(HH:MM:SS.FF),根据这一行可知SQL耗时在哪些地方;
  5. Buffers:每一步实际执行的逻辑读或一致性读;
  6. Reads:物理读;
  7. OMem:OMem为最优执行模式所需的内存评估值, 这个数据是由优化器统计数据以及前一次执行的性能数据估算得出的;
  8. 1Mem:1Mem为one-pass模式所需的内存评估值,当工作区大小无法满足操作所需的大小时,需要将部分数据写入临时磁盘空间中(如果仅需要写入一次就可以完成操作,就称一次通过,One-Pass;否则为多次通过,Multi-Pass).该列数据为语句最后一次执行中,单次写磁盘所需要的内存大小,这个由优化器统计数据以及前一次执行的性能数据估算得出的
  9. Used_Mem:Used-Mem则为当前操作实际执行时消耗的内存,括号里面为(发生磁盘交换的次数,1次即为One-Pass,大于1次则为Multi_Pass,如果没有使用磁盘,则显示0)

优缺点

标签:语句,dbms,xplan,显示,信息,cursor,计划,SQL,执行
来源: https://www.cnblogs.com/henry-chr/p/14616062.html