news 2026/4/16 14:44:30

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/16 13:58:47

Kettle-Manager:颠覆传统的数据集成管理新体验 [特殊字符]

Kettle-Manager:颠覆传统的数据集成管理新体验 🚀 【免费下载链接】kettle-manager 专门为kettle这款优秀的ETL工具开发的web端管理工具。 项目地址: https://gitcode.com/gh_mirrors/ke/kettle-manager 在当今数据爆炸的时代,企业面临…

作者头像 李华
网站建设 2026/3/30 23:44:30

Calendar容器定制与布局控制完全指南:从基础配置到高级实战

Calendar容器定制与布局控制完全指南:从基础配置到高级实战 【免费下载链接】caesium-image-compressor Caesium is an image compression software that helps you store, send and share digital pictures, supporting JPG, PNG and WebP formats. You can quickl…

作者头像 李华
网站建设 2026/4/5 0:06:47

5分钟搞定!用Docker轻松部署1100+语言电子书转有声书神器

还在为电子书转有声书的复杂配置头疼吗?今天我要分享一个超级简单的解决方案——使用Docker快速部署ebook2audiobook项目,让你在5分钟内拥有支持1100多种语言的AI语音合成环境!无论你是Windows、macOS还是Linux用户,都能轻松上手。…

作者头像 李华
网站建设 2026/4/15 8:27:04

完整指南:5步构建行为面试中的领导力故事

完整指南:5步构建行为面试中的领导力故事 【免费下载链接】awesome-behavioral-interviews Tips and resources to prepare for Behavioral interviews. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-behavioral-interviews 想要在行为面试中脱颖而…

作者头像 李华
网站建设 2026/4/16 14:06:14

选择性状态空间机制:5个关键突破让序列建模效率提升10倍

选择性状态空间机制:5个关键突破让序列建模效率提升10倍 【免费下载链接】mamba 项目地址: https://gitcode.com/GitHub_Trending/ma/mamba 还在为长文本生成时GPU内存告急而焦虑?或者因Transformer在超长序列推理中的O(n)复杂度而束手无策&…

作者头像 李华
网站建设 2026/4/12 7:12:31

腾讯元宝API实战:构建智能客服聊天机器人

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 基于腾讯元宝API开发一个电商客服聊天机器人。功能包括:1. 自动回答常见问题(退货、物流等);2. 支持多轮对话;3. 情感分析…

作者头像 李华