暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 提示使用情况报告:教程

原创 Asher.HU 2021-02-04
452
19.3.3.3提示使用情况报告:教程

您可以使用DBMS_XPLAN显示功能报告提示使用情况。

提示使用情况报告默认情况下处于启用状态。显示带有提示信息的计划的步骤与正常显示计划的步骤相同。

假设条件

本教程假定以下内容:

  • emp_emp_id_pk上存在一个名为的索引employees.employee_id
  • 您要查询特定员工。
  • 您要使用INDEX提示来强制优化器使用emp_emp_id_pk

要报告提示用法:

  1. 启动SQL * Plus或SQL Developer,然后以user身份登录数据库hr
  2. 解释查询的计划employees

    例如,输入以下语句:

    EXPLAIN PLAN FOR
      SELECT /*+ INDEX(e emp_emp_id_pk) */ COUNT(*) 
      FROM   employees e 
      WHERE  e.employee_id = 5;
  3. 使用显示功能查询计划表。

    您可以在format参数中指定以下任何值

    • ALL
    • TYPICAL
    • HINT_REPORT
    • HINT_REPORT_USED
    • HINT_REPORT_UNUSED

    以下查询显示计划的所有部分,包括提示用法信息(包括示例输出):

    SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(format => 'ALL'));
    
    PLAN_TABLE_OUTPUT
    ------------------------------------------------------------------------------------
    Plan hash value: 2637910222
    
    ------------------------------------------------------------------------------------
    | Id  | Operation          | Name          | Rows  | Bytes | Cost (%CPU)| Time     |
    ------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT   |               |     1 |     4 |     0   (0)| 00:00:01 |
    |   1 |  SORT AGGREGATE    |               |     1 |     4 |            |          |
    |*  2 |   INDEX UNIQUE SCAN| EMP_EMP_ID_PK |     1 |     4 |     0   (0)| 00:00:01 |
    ------------------------------------------------------------------------------------
    
    Query Block Name / Object Alias (identified by operation id):
    ------------------------------------------------------------------------------------
    
       1 - SEL$1
       2 - SEL$1 / E@SEL$1
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       2 - access("E"."EMPLOYEE_ID"=5)
    
    Column Projection Information (identified by operation id):
    ------------------------------------------------------------------------------------
    
       1 - (#keys=0) COUNT(*)[22]
    
    Hint Report (identified by operation id / Query Block Name / Object Alias):
    Total hints for statement: 1
    ---------------------------------------------------------------------------
    
       2 -  SEL$1 / E@SEL$1
               -  INDEX(e emp_emp_id_pk)
    
    

    提示报告部分表明,对于查询块INDEX(e emp_emp_id_pk)提示是SEL$1表标识符为E@SEL$1计划行的行号是2,与表格E@SEL$1在计划表出现的第一行相对应

也可以看看:

Oracle Database SQL语言参考以了解更多信息EXPLAIN PLAN


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论