news 2026/6/15 15:58:28

Oracle获取SQL执行计划

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Oracle获取SQL执行计划

Oracle查看SQL执行计划以及执行开销

EXPLAIN PLAN是Oracle提供的一种静态分析SQL执行路径的方法,它通过生成逻辑执行计划帮助开发者和DBA预测SQL的性能表现。

注意:EXPLAIN PLAN不会实际执行SQL,而是将优化器生成的执行计划写入PLAN_TABLE(系统临时表)。

连接Oracle

假设Oracle安装在Windows系统下,进入终端,输入下面命令:

>sqlplus 请输入用户名: system 输入口令:

终端会显示下面信息:

连接到: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0

执行SQL分析语句

执行explain plan for [SQL-Statement];(SQL-Statement是想分析的SQL语句,成功执行完会显示Explained或者已解释。举个例子,假设SQL-Statement是select * from nasdaq match_recognize( partition by ticker ORDER BY ts measures match_number() as mn all rows per match pattern(start_r end_r) define end_r as end_r.open - start_r.open > 10);则输入

SQL>explain planforselect*2from nasdaq3match_recognize(4partition by ticker5ORDER BY ts6measures match_number()as mn7all rows per match8pattern(start_r end_r)9define end_r as end_r.open - start_r.open>1010);

此时,结果已经写入到临时表中。可以通过select * from table(DBMS_XPLAN.DISPLAY);查看结果。为了方便展示,取结果时,设置一下linesize(注意set好要换行,否则会报错),此时取出的结果如下:

SQL>setlinesize150SQL>SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ Planhashvalue:3978417298---------------------------------------------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|---------------------------------------------------------------------------------------------------------------|0|SELECT STATEMENT||8706K|747M|132K(1)|00:00:06||1|VIEW||8706K|747M|132K(1)|00:00:06||2|MATCH RECOGNIZE SORT DETERMINISTIC FINITE AUTOMATON||8706K|431M|132K(1)|00:00:06||3|TABLE ACCESS FULL|NASDAQ|8706K|431M|20371(2)|00:00:01|--------------------------------------------------------------------------------------------------------------- 已选择10行。

你也可以执行下面的命令查看列投影信息。

setlinesize150SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL,'ALL'));

查看物理执行计划的耗时

-- 设置统计级别ALTERSESSIONSETstatistics_level=ALL;-- 执行你的SQLselect/*+ MONITOR */*fromnasdaq match_recognize(measures match_number()asmnallrowspermatchpattern(start_r end_r)define end_rasend_r.ticker=start_r.tickerandend_r.open>start_r.open+10);-- 立即查看执行计划和耗时SETlinesize=200SELECT*FROMTABLE(DBMS_XPLAN.display_cursor(format=>'ALLSTATS LAST'));

此时会显示每个物理算子累计的执行开销。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 19:53:13

鸿蒙原生智能:用 ArkTS + AI Kit 打造端侧大模型驱动的个人知识库助手

鸿蒙原生智能:用 ArkTS AI Kit 打造端侧大模型驱动的个人知识库助手 📌 为什么鸿蒙是 AI 应用的最佳载体? 随着 华为盘古大模型 3.0 全面开放端侧推理能力,HarmonyOS 成为国内唯一支持本地化大模型运行的移动操作系统。相比依赖…

作者头像 李华
网站建设 2026/6/15 9:21:30

7亿参数掀翻边缘AI格局:LFM2-700M如何重新定义终端智能

7亿参数掀翻边缘AI格局:LFM2-700M如何重新定义终端智能 【免费下载链接】LFM2-700M 项目地址: https://ai.gitcode.com/hf_mirrors/LiquidAI/LFM2-700M 导语:Liquid AI推出的LFM2-700M模型以7亿参数实现49.9%的MMLU得分,较同类模型快…

作者头像 李华
网站建设 2026/6/15 1:03:31

视频去水印神器:3步搞定烦人水印,让视频重获纯净!

视频去水印神器:3步搞定烦人水印,让视频重获纯净! 【免费下载链接】video-watermark-removal Remove simple watermarks from videos with minimal setup 项目地址: https://gitcode.com/gh_mirrors/vi/video-watermark-removal 还在为…

作者头像 李华
网站建设 2026/6/14 12:28:28

3D部件处理实战指南:4种核心文件格式的深度应用

3D部件处理实战指南:4种核心文件格式的深度应用 【免费下载链接】Hunyuan3D-Part 腾讯混元3D-Part 项目地址: https://ai.gitcode.com/tencent_hunyuan/Hunyuan3D-Part 在当今的3D内容创作领域,文件格式的选择直接影响着工作流程的效率和最终成果…

作者头像 李华
网站建设 2026/6/15 0:42:02

深度解析IOPaint:AI图像修复技术架构与实战指南

深度解析IOPaint:AI图像修复技术架构与实战指南 【免费下载链接】IOPaint 项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint 在数字图像处理领域,水印去除一直是一个技术难点。传统的Photoshop等工具需要手动精细操作,而基…

作者头像 李华
网站建设 2026/6/15 8:26:21

7个必知技巧:腾讯混元3D-Part文件格式完全攻略

你是否曾在3D部件生成过程中遇到这样的困扰:导入的模型总是报错,导出的文件在目标平台无法正常显示,或者不同格式之间的转换让你头疼不已?作为专注于3D部件分割与生成的强大工具,腾讯混元3D-Part的文件格式兼容性正是解…

作者头像 李华