简单说说 gather_plan_statistics

DBA的日常核心工作之一是对线上有性能问题的SQL语句进行优化。其中优化SQL语句的最关键的一步是得到SQL的执行计划。那么一个常见的问题来了。如何得到一个SQL语句的真实执行计划?方法有很多。今天说其中一种方法就是使用 gather_plan_statistics(收集计划统计信息)

首先简单说一下oracle sql语句的生成执行计划的过程。当运行 SQL 查询时,数据库将首先解析它并为传入的查询生成 AST(抽象语法树)。解析器验证 SQL 语句的语法并检查查询的对象是否存在等。解析器可以重写查询以优化其执行,而不影响最终的结果。生成的查询树被发送到优化器,优化器需要找出获取当前 SQL 查询所需数据的最佳方式。这个时候。优化器生成了一个执行计划,它是满足 SQL 查询要求所需执行的操作列表。生成的执行计划被发送到执行器,执行器运行它并将获取的数据发送回数据库客户端。

SQL 处理和执行步骤如下图:

评估的执行计划由优化器生成,并没有真正的执行 SQL语句。可以用EXPLAIN PLAN FOR SELECT ..... 这样子生成评估的执行计划。然后数据库会将估计的执行计划存储在关联的 PLAN_TABLE里:

SQL> EXPLAIN PLAN FOR SELECT COUNT(*) FROM T01;
​
Explained.
​
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY (FORMAT=>'ALL +OUTLINE'));
​
PLAN_TABLE_OUTPUT
--------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/832320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东方生物工程设备技术有限责任公司带您解读2024第12届上海生物发酵展览会

参展企业介绍 镇江东方生物工程设备技术有限责任公司是国内规模最大的自动成套生化反应设备的专业制造商,也是江苏省最早的专业发酵罐制造公司。公司主要从事液体发酵设备、固体发酵设备、特殊新型生化反应设备以及自动生化反应过程控制系统的研究、开发与制造。 公…

鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案

官方概述 先看官方对事件的描述. 事件(Event)是一种任务间通信的机制,可用于任务间的同步。 多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。 一对多同步模型…

C语言的32个关键字

的32个关键字的简要说明: auto:用于定义自动变量,其作用域仅限于代码块内。break:用于中断循环或switch语句的执行。case:在switch语句中用于指定不同的情况。char:用于声明字符类型的变量。const&#xf…

【贪心算法】Leetcode 122. 买卖股票的最佳时机 II【中等】

买卖股票的最佳时机 II 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的…

HFP event

0 Preface/Foreword NOTE:在来电提示音在响时候,每3s会进入一次。 也就是说:协议栈,没3s会调用一次app_hfp_event_callback。 回调函数在hfp初始化时候通过btif_hf_register_callback注册。 提示音调节: iPhone6s iO…

区块链开发用的是哪种编程语言?

区块链技术作为近年来备受瞩目的新兴技术之一,其核心的特性之一就是去中心化、安全性高、透明度高和可扩展性强。而区块链的开发语言则是实现这一技术的关键因素之一。那么,区块链开发语言是哪一种编程语言呢? 一、区块链开发语言的特点和选…

OZON卖家必看!2024年OZON运营必备工具大全

OZON运营过程中会用到许多工具网站,都是OZON跨境人运营必备的。为了帮助新卖家在运营OZON时更高效,下面汇总了一份我们在日常运营中频繁使用的工具网站列表。这样大家可以一次性找到所需的所有网址,无需在多个网站间来回切换,节省…

【Linux】SFTP定时下载文件

需求:使用sftp命令定时拉取文件 原始命令 1. sftp -oIdentityFile/student/keys/id_rsa -oPort8111 xxx.com2. cd /school/download/3. ls4. get xxx.csv创建脚本down.sh,获取前一天的文件 #!/bin/bash echo "Starting to sftp..." # 使用sftp命令连接到…

C++:哈希表和unordered系列容器的封装

一、unordered系列关联式容器的介绍 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到log2N,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是&…

K. 子串翻转回文串

给一个串 s  s1s2... sn,你可以选定其一个非空子串,然后将该子串翻转。具体来说,若选定的子串区间为 [l, r](1 ≤ l ≤ r ≤ n),则翻转后该串变为 s1s2... sl - 1srsr - 1... slsr  1... sn…

工作中遇到的问题,如何解决的

1. gorm update 一条记录的某个字段后,立刻(1ms)select这条记录,会有读取不到最新结果的情况: transaction已经提交,数据最后也是更新的。 猜测原因:MySQL没能及时把那条很大的record“刷盘”到…

海外仓管理软件:如果你这么用,它对你有害无益

虽然说海外仓管理系统是个功能强大的工具,但它并不能解决海外仓所有的问题。 那么什么时候适合使用海外仓系统,什么样的使用方式是错误的?今天就系统的和大家聊聊这个问题。 不要把海外仓管理系统当成“救急”工具 很多时候人们在遇到问题的时…

Day_1

1. 环境搭建 技术选型 后端项目结构 sky-take-out maven父工程,统一管理依赖版本,聚合其他子模块 sky-common 子模块,存放公共类,例如:工具类、常量类、异常类等 sky-pojo 子模块,存放实体类、VO、DTO…

如何使用Python进行数据可视化

在Python中进行数据可视化是一个非常强大的方式,可以帮助数据分析师和科学家理解数据并向他人展示数据洞察。Python提供了多个库来支持数据可视化,其中最流行的是Matplotlib、Seaborn、Plotly和Pandas的内置绘图功能。以下是如何使用这些工具进行数据可视…

node.js对数据库的操作 之 query(查询)与pool(连接池)

一、Query(查询) (1)意义 query是指向数据库发送的一个命令或请求,以检索、更新、插入或删除数据。它是一个具体的SQL语句或NoSQL命令,用于从数据库中获取或修改数据。 (2)用途 …

微信小程序开发实战:构建商品购买与订单管理系统【代码示例】

微信小程序开发实战:构建商品购买与订单管理系统【代码示例】 基础概念商品展示购物车订单管理 技术栈实战步骤1. 商品展示WXML模板JS逻辑 2. 购物车功能3. 订单生成4. 订单管理页面 安全性与性能优化结语与讨论 在电商领域,流畅的商品购买流程和高效的订…

4个可将 iPhone iPad iPod 修复至正常状态的 iOS 系统恢复软件

许多iOS用户对操作系统问题感到恐慌,例如iPhone卡在恢复模式、白屏死机、黑屏死机、iOS系统损坏、iTunes连接屏幕、iPhone数据丢失等。这些状态通常很无聊,因为您无法使用 iPhone 执行任何操作。 4个可将 iPhone iPad iPod 修复至正常状态的 iOS 系统恢复…

探索网络接口层:局域网技术和 PPP 协议

目录 前言 1.局域网协议标准 介质访问控制方法 以太网 2.MAC 寻址 3.以太网帧分析 以太网帧格式 4.局域网技术 5.PPP 协议 背景 PPP的基本组成 PPP帧格式 PPP的工作流程 PPP的特点 总结 前言 在 TCP/IP 协议栈中,网络接口层(或数据链路层&…

一键自动化博客发布工具,用过的人都说好(segmentfault篇)

segmentfault是我在这些平台中看过界面最为简洁的博客平台了。 今天就以segmentfault为例,讲讲在blog-auto-publishing-tools中的实现原理。 前提条件 前提条件当然是先下载 blog-auto-publishing-tools这个博客自动发布工具,地址如下:https://github…

win中python中OpenCV使用cv2.imshow()报错的解决办法

1. 问题 cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK 2.x or Cocoa support. If you are on Ubuntu o…