news 2026/4/24 21:15:24

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/4/17 9:08:40

Bosque语言:颠覆传统编程的终极解决方案

你是否曾经因为代码中的不确定性bug而彻夜难眠?是否在复杂的并发场景中迷失方向?Bosque语言的出现,正是为了解决这些困扰开发者多年的难题。作为微软研究院的开源项目,Bosque通过正则化编程模型,为现代软件开发者提供了…

作者头像 李华
网站建设 2026/4/18 6:33:07

AutoGPT与Google Analytics集成:自动解读流量数据

AutoGPT与Google Analytics集成:自动解读流量数据 在数字营销和网站运营的世界里,每天都有成千上万的数据点被记录下来——用户从哪里来?他们在页面上停留多久?哪些渠道带来了最多的转化?传统上,这些问题的…

作者头像 李华
网站建设 2026/4/23 0:37:26

20亿参数撬动物理世界交互:Isaac-0.1开启轻量化多模态AI新纪元

导语:Meta前Chameleon团队打造的20亿参数多模态模型Isaac-0.1,以"小而精"的技术路径重新定义物理世界智能交互标准,为边缘设备AI部署提供新范式。 【免费下载链接】Isaac-0.1 项目地址: https://ai.gitcode.com/hf_mirrors/Perc…

作者头像 李华
网站建设 2026/4/21 0:09:54

AlDente电池管理神器:新手也能轻松掌握的MacBook电池保养秘诀

AlDente电池管理神器:新手也能轻松掌握的MacBook电池保养秘诀 【免费下载链接】AlDente-Charge-Limiter macOS menubar tool to set Charge Limits and prolong battery lifespan 项目地址: https://gitcode.com/gh_mirrors/al/AlDente-Charge-Limiter 对于M…

作者头像 李华
网站建设 2026/4/20 5:30:02

Gotify实时消息推送系统:5分钟快速搭建完整指南

Gotify实时消息推送系统:5分钟快速搭建完整指南 【免费下载链接】server A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui) 项目地址: https://gitcode.com/gh_mirrors/serv/server Gotify是一个…

作者头像 李华
网站建设 2026/4/23 17:09:52

React组件渲染性能优化:打造丝滑用户体验的终极指南

React组件渲染性能优化:打造丝滑用户体验的终极指南 【免费下载链接】area51 项目地址: https://gitcode.com/GitHub_Trending/ar/area51 在现代Web应用开发中,React凭借其声明式编程模型和高效的虚拟DOM机制,已经成为构建用户界面的…

作者头像 李华