当前位置: 首页 > news >正文

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'));

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

http://www.jsqmd.com/news/87920/

相关文章:

  • 近视
  • 39、高级Shell技巧与特性解析
  • 北京展厅设计十强榜单揭晓:数字展厅设计领域创新力排行
  • VAR视觉自回归模型:技术突破与实战应用全解析
  • 20亿参数撬动物理世界交互:Isaac-0.1开启轻量化多模态AI新纪元
  • 口碑好的家用综合训练器公司
  • 9、Ubuntu系统软件使用与配置全攻略
  • 3D部件处理实战指南:4种核心文件格式的深度应用
  • 为什么我写的越来越少了
  • 10、Ubuntu系统使用指南:从基础设置到多媒体体验
  • kali自带工具生成字典crunch的使用(破解密码)
  • 不可忽视:当下 3 家小众却实力强劲的国产音视频 SDK
  • 书籍-萧统《文选》
  • 基于vue的个人博客_nr6x3nnw_springboot php python nodejs
  • 延吉推荐一下烤肉哪家好吃
  • 多模态AI推理技术演进:从视觉感知到认知思维的范式跃迁
  • 基于vue的停车场预约管理系统地图_n7nz82g6_springboot php python nodejs
  • 11、Ubuntu系统多媒体使用、备份及设置全攻略
  • 力扣 划分字母区间
  • 腾讯混元4B开源:小参数大模型如何重塑AI部署格局
  • 深入解析:【指南】为你的开源Python项目编写完善的文档(Sphinx)
  • 学习试用codebuddy和Trae编程“俄罗斯方块”测试体验
  • Integrated RNNs for Rainfall Sensing with Wireless Communication Networks(利用无线通信网络的集成RNNs进行降雨感知)
  • 基于vue的酒店客房预订管理系统_7t24n9n5_springboot php python nodejs
  • 基于vue的酒店客房预订管理系统_7t24n9n5_springboot php python nodejs
  • 基于vue的食品溯源管理系统_91804cyk_springboot php python nodejs
  • macOS Android USB网络共享终极指南:HoRNDIS完整教程
  • SpringBoot3+Vue3全栈开发终极指南:10分钟搭建企业级应用架构
  • 基于vue的心理医生综合诊疗系统的设计与实现_002cz1k7_springboot php python nodejs
  • 题目集4~5及课堂测验总结性Blog