首页 > 数据库 >查看Oracle执行计划以及真实执行计划

查看Oracle执行计划以及真实执行计划

时间:2024-07-24 17:30:22浏览次数:8  
标签:语句 DBMS AUTOTRACE 计划 SQL Oracle 执行

在 Oracle 数据库中,查看 SQL 语句的执行计划可以通过以下几种方法:

使用 AUTOTRACE

AUTOTRACE 提供一个简单的方法来查看 SQL 语句的执行计划和统计信息。你可以在 SQL*Plus 中使用它:

  1. 启用 AUTOTRACE:
SET AUTOTRACE ON
  1. 执行你的 SQL 语句,Oracle 会自动显示执行计划和统计信息。

  2. 你也可以使用 SET AUTOTRACE TRACEONLY 只显示执行计划和统计信息而不显示查询结果:

SET AUTOTRACE TRACEONLY

使用 EXPLAIN PLAN

EXPLAIN PLAN 命令可以生成并显示 SQL 语句的执行计划。步骤如下:

  1. 生成执行计划并将其插入到一个表中:
EXPLAIN PLAN FOR your_sql_statement;

例如:

EXPLAIN PLAN FOR SELECT * FROM employees WHERE employee_id = 100;
  1. 查看生成的执行计划:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

使用 DBMS_XPLAN.DISPLAY_CURSOR

为了查看真实的执行计划(已执行的语句的实际执行计划),你可以使用 DBMS_XPLAN.DISPLAY_CURSOR 包。步骤如下:

  1. 执行你的 SQL 语句。

  2. 找到执行的 SQL 语句的 SQL_ID,可以通过以下查询找到:

SELECT sql_id, child_number FROM v$sql WHERE sql_text LIKE 'your_sql_text%';
  1. 使用 DBMS_XPLAN.DISPLAY_CURSOR 显示真实的执行计划:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id', child_number, 'ALLSTATS LAST'));

例如:

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('d1s3gf7g8sh9d', 0, 'ALLSTATS LAST'));

使用 SQL Developer

Oracle SQL Developer 提供了一个图形界面来查看执行计划:

  1. 打开 SQL Developer 并连接到数据库。
  2. 输入并执行你的 SQL 语句。
  3. 在结果窗口中,选择 "Execution Plan" 选项卡,可以看到 SQL 语句的执行计划。

总结

  • AUTOTRACE 简单快捷,适用于快速查看计划和统计信息。
  • EXPLAIN PLAN 可以在不实际执行语句的情况下查看计划。
  • DBMS_XPLAN.DISPLAY_CURSOR 提供了真实的执行计划和详细的统计信息。
  • SQL Developer 图形界面友好,适合可视化查看。

根据你的需求选择合适的方法来查看 Oracle 的真实执行计划。

其他参考:https://www.cnblogs.com/kingsleylam/p/11617890.html

标签:语句,DBMS,AUTOTRACE,计划,SQL,Oracle,执行
From: https://www.cnblogs.com/shinji/p/18321329

相关文章

  • opengauss第十三步: 在主集群主机和备集群首备执行查询,可观察到流复制信息
    第十三步:在主集群主机和备集群首备执行查询,可观察到流复制信息主集群主节点0[omm@node1dn]$gs_ctlquery-D/opt/huawei/install/data/dn[2023-04-1809:38:34.397][1498175][][gs_ctl]:gs_ctlquery,datadiris/opt/huawei/install/data/dnHAstate:local......
  • Oracle DB 数据准备
    CreateTablecreatetableDEP(deptnonumber,dnamevarchar2(50)notnull,locationvarchar2(50),constraintpk_departmentsprimarykey(deptno));createtableEMP(empnonumber,ename......
  • PART1-Oracle关系数据结构-索引和索引组织表
    3.索引组织表3.1.索引概述索引是与表或表簇关联的可选结构,有时可以加快数据访问速度。通过在表的一个或多个列上创建索引,在某些情况下,您可以从表中检索一小部分随机分布的行。索引是减少磁盘I/O的众多方法之一。如果堆组织表没有索引,那么数据库必须执行全表扫描才能找到一个......
  • 了解package.json中npm run命令的执行原理,以及直接运行shell命令
    了解npmrun在package.json文件中的script字段,可以定义脚本命令,通过npmrun指令运行该脚本。比如简单定义一个输出打印的shell脚本。{"script":{"hw":"echohelloworld!"}}执行npmrunhw可以看到终端上打印出了helloworld!。我们可以在很多工程项目中......
  • Ubuntu 中开机自动执行脚本的两种方法
    方法1:rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。方法2:建立自己的脚本,例如:#!/bin/bashcd/home/ubuntu/undertow-server/sudomvnexec:java保存为run_server.sh修改脚本执行权限:chmod+xrun_server.sh将脚本......
  • oracle大表性能优化
    1不修改表结构的优化1.1收缩表,降低高水位线ALTERTABLETESTENABLEROWMOVEMENT;ALTERTABLETESTSHRINKSPACE;1.2对表收集统计信息BEGINDBMS_STATS.GATHER_TABLE_STATS(ownname=>user,tabname=>'TEST');END;1.3使用oracle的并行查询功......
  • 最高法-《执行异议与复议规定》第28条规定的不动产买受人的物权期待权劣后于担保物权
    1. (2022)最高法民终71号  万建明、汪美华等申请执行人执行异议之诉民事二审民事判决书上诉人主张:万建明、汪美华上诉请求:1.原审判决适用法律错误,请求依法改判驳回中铁建设公司的全部诉讼请求或发回重审;2.一、二审诉讼费用由中铁建设公司承担。主要事实和理由:(一)根据最高人民法院......
  • Oracle 中 LISTAGG 函数的介绍以及使用
    原文地址:https://www.cnblogs.com/codeLearn/p/17931924.htmlLISTAGG函数介绍listagg函数是Oracle11.2推出的新特性。其主要功能类似于wmsys.wm_concat函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG使用listagg函数有两个参数: 1、要合并的......
  • 最高法-为减少生活不便、照顾、改善全家人生活购买的房屋,显然非商业投资性质的,也符合
    1.(2021)最高法民终945号  重庆进出口融资担保有限公司、刘兴碧等申请执行人执行异议之诉民事二审民事判决书本院认为:本院认为,案件的争议焦点为:刘兴碧、田多学对案涉房屋是否享有足以排除强制执行的民事权益。根据《最高人民法院关于人民法院办理执行异议和复议案件若干问题的......
  • 最高法--《最高人民法院关于人民法院办理执行异议和复议案件若干问题的规定》第二十九
    (2022)最高法民终149号  中建一局集团第二建筑有限公司、王丹等申请执行人执行异议之诉民事二审民事判决书本院认为:本院认为,本案争议焦点为王丹对案涉房屋是否享有足以排除强制执行的民事权益。根据《最高人民法院关于人民法院办理执行异议和复议案件若干问题的规定》第二十九条......