PostgreSQL-使用explain对SQL进行性能调优

文章目录

  • 一、具体方法
  • 二、解释
    • 2.1 explain的4种用法
    • 2.2 auto explain的用法
    • 2.3 explain analyze 执行计划解读

一、具体方法

方法:通过查看pg_stat_activity视图,查找耗时长的慢SQL语句,然后通过查看执行计划分析慢的原因,从而确定优化方案

1、与数据库建立连接1,并执行慢的存过
2、与数据库建立连接2,并通过下面语句观察当前正在执行的存过名称和语句。
select pid,application,name,query,backend_start,query_start,sysdate-query_start as runtime,application_name from pg_stat_activity where state='active' and usename not in ('omm','rdsadmin') and query like '%<schema.objectname>%' and query not like '%select pid,application,name,query,backend_start,query_start%' order by 4 desc;
3、查看执行计划
通过 explain 命令查看执行计划
explain <SQL>
查看执行计划及耗时
explain analyze <SQL> 
常见算子的名称
operation:算子名称
E-rows:算子扫描涉及的行数
A-time:实际执行耗时
A-rows:实际扫描的行数
常见表扫描方式:
Seq Scan:全表扫描
Bitmap index Scan:使用位图索引抓取数据页
Index Scan using index_name:使用简单索引搜索

二、解释

explain 用于显示SQL语言的执行计划,以及执行计划中各组成部分开销和执行时间,是用来分析SQL级的性能问题。

2.1 explain的4种用法

序号用法说明
1explain SQLSQL并不会真的执行,只生成执行计划
2explain analyze SQLSQL会真实执行,如果用户不想对实际数据造成更新,可以在事务中执行并回滚
3explain performance SQLSQL真实执行,结果比2更详细
4auto explain输出多,但是开销高,使用方法可以见下

2.2 auto explain的用法

1、在XSHELL使用sql连接工具psql,在数据库内执行

set enable_auto_explain =YES;
set auto_explain_level=Notice;

2、在XSHELL中,启动文件-》日志-》启动。查看日志,观察duration大的SQL,以及入参等。

2.3 explain analyze 执行计划解读

一般针对真实开销高(actual time)的算子节点进行优化,如果认为优化器对SQL的访问路径选择有误,需要看理论评估值是否异常。
输出位树形结构,节点按列缩进,同级节点一般为从上往下执行,不同级节点,右边节点为左边节点的组成部分,同级节点时间不累加。

详细解释可以看这篇,总结的很好
Postgres执行计划EXPLAIN使用详解

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

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

相关文章

【目标检测】使用自己的数据集训练并预测yolov8模型

1、下载yolov8的官方代码 地址&#xff1a; GitHub - ultralytics/ultralytics: NEW - YOLOv8 &#x1f680; in PyTorch > ONNX > OpenVINO > CoreML > TFLite 2、下载目标检测的训练权重 yolov8n.pt 将 yolov8n.pt 放在ultralytics文件夹下 3、数据集分布 注…

洛谷P2176 [USACO11DEC] RoadBlock S / [USACO14FEB]Roadblock G/S

题意 给定一张 n n n 点 m m m 边的无向图&#xff0c;请选择一条边&#xff0c;将其边权加倍&#xff0c;最多可使最短路增长多少&#xff1f; 思路 暴力做法&#xff1a;枚举所有边&#xff0c;将其边权加倍&#xff0c;跑一遍最短路&#xff0c;取最大值。 优化&#x…

国际网课平台Udemy上的亚马逊云科技AWS免费高分课程和创建、维护EC2动手实践

亚马逊云科技(AWS)是全球云行业最&#x1f525;火的云平台&#xff0c;在全球经济形势不好的大背景下&#xff0c;通过网课学习亚马逊云科技AWS基础备考亚马逊云科技AWS证书&#xff0c;对于找工作或者无背景转行做AWS帮助巨大。欢迎大家关注小李哥&#xff0c;及时了解世界最前…

Django ModelForm用法详解 —— Python

Django ModelForm是一种自动生成表单的工具&#xff0c;它是以模型为基础&#xff0c;在模型类上定义的表单。在使用Django ModelForm时&#xff0c;我们只需要指定模型类作为表单数据的基础&#xff0c;就可以自动地生成表单。下面是Django ModelForm用法的完整攻略。 创建Mo…

深入理解Python中的切片

在Python编程中&#xff0c;处理序列&#xff08;如列表、元组和字符串&#xff09;是日常工作的一部分。为了高效地访问和操作序列中的元素&#xff0c;Python提供了一种强大的工具——切片&#xff08;slicing&#xff09;。切片允许你提取序列的一部分&#xff0c;而无需编写…

文件操作和IO流(Java版)

前言 我们无时无刻不在操作文件。可以说&#xff0c;我们在电脑上能看到的图片、视频、音频、文档都是一个又一个的文件&#xff0c;我们需要从文件中读取我们需要的数据&#xff0c;将数据运算后也需要将结果写入文件中长期保存。可见文件的重要性&#xff0c;今天我们就来简…

分布式锁(仅供自己参考)

分布式锁&#xff1a;满足分布式系统或集群式下多进程可见并且互斥的锁&#xff08;使用外部的锁&#xff0c;因为如果是集群部署&#xff0c;每台服务器都有一个对应的tomcat&#xff0c;则每个tomcat的jvm就不同&#xff0c;锁对象就不同&#xff08;加锁的机制&#xff0c;每…

独立开发者系列(23)——Linux掌握小结

只要开发系统&#xff0c;就绕不开使用Linux服务器 &#xff0c;而Linux除了使用BT面板进行初级管理&#xff0c;很多稍微高级点的管理&#xff0c;还是需要命令行进行的。这里总结在不需要精通的情况下&#xff0c;掌握常见命令和环境的相关配置。 &#xff08;1&#xff09…

Qt常用基础控件总结—表格控件(QTableWidget类)

表格控件QTableWidget 表格控件最上面一排是只读的水平表头,最左边一列是只读的垂直表头。表头又可以细分为多个分段(section),水平表头的分段就是表格各个列的列首,垂直表头 分段就是表格各个行的行首。表格控件的实体区域是按行、列排布的单元格,单元格内容一般用 QTa…

HI3559AV100四路IMX334非融合拼接8K视频记录

下班无事&#xff0c;写篇博客记录海思hi3559av100四路4K视频采集拼接输出8K视频Demo 一、准备工作&#xff1a; 软件&#xff1a;Win11系统、VMware虚拟机Ubuntu14、Hitool、Xshell等 硬件&#xff1a;HI3559AV100开发板4路imx334摄像头、串口线、电源等 附硬件图&#xff1…

oracle逻辑层级详解(表空间、段、区、数据块)

文章目录 逻辑结构的层次如下所述&#xff1a;逻辑结构包括表空间、段、区和数据块。表空间&#xff1a;段&#xff1a;区&#xff1a;数据块&#xff1a; 逻辑结构的层次如下所述&#xff1a; oracle数据库至少包含一个表空间。 表空间包含一个或多个段。&#xff08;segmen…

来一场栈的大模拟(主要是单调栈)

一.栈模拟 二.单调栈求最大矩形面积 通常&#xff0c;直方图用于表示离散分布&#xff0c;例如&#xff0c;文本中字符的频率。 现在&#xff0c;请你计算在公共基线处对齐的直方图中最大矩形的面积。 图例右图显示了所描绘直方图的最大对齐矩形。 输入格式 输入包含几个测…

哪里有主机游戏店收费系统,佳易王电玩ps5ps4计时计费系统操作教程

哪里有主机游戏店收费系统&#xff0c;佳易王电玩ps5ps4计时计费系统操作教程 以下软件操作教程以&#xff0c;佳易王计时计费管理系统为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件程序图文讲解 1、主机游戏计时软件、电玩店计费软…

大模型学习笔记1-大模型应用基础

一、什么是 AI 在当前AI概念大火的大环境下&#xff0c;似乎不加上AI的系统都不够潮流&#xff0c;但如何定义什么是AI&#xff1f;一种观点&#xff1a;基于机器学习、神经网络的是 AI&#xff0c;基于规则、搜索的不是 AI。从我个人理解上来看&#xff0c;更通俗的来说运行结…

链动2+1小程序商城开发,模式商城开发

链动21小程序商城的开发是一个涉及多个方面和步骤的复杂过程。以下是开发链动21小程序商城的基本步骤和要点&#xff1a; 需求分析与规划&#xff1a; 明确商城的功能和特性&#xff0c;包括商品展示、购物车管理、订单处理、支付功能、积分系统等1。 了解客户需求&#xff0…

HumanoidBench——模拟仿人机器人算法有未来

概述 论文地址&#xff1a;https://arxiv.org/pdf/2403.10506 仿人机器人具有类似人类的外形&#xff0c;有望在各种环境和任务中为人类提供支持。然而&#xff0c;昂贵且易碎的硬件是这项研究面临的挑战。因此&#xff0c;本研究开发了使用先进模拟技术的 HumanoidBench。该基…

GTK是如何加密WLAN组播和广播数据的?

1. References WLAN 4-Way Handshake如何生成GTK&#xff1f;_tk bigtk gtk igtk-CSDN博客 2. 概述 在Wi-Fi网络中&#xff0c;单播、组播和广播帧的加密算法是由AP决定的。其中组播帧和广播帧的加密使用GTK密钥&#xff0c;其PTK的密钥结构如下图所示&#xff1a; GTK的组成…

2024 Q3 NAND闪存价格|企业级依然猛涨,消费级放缓

在企业领域持续投资于服务器基础设施&#xff0c;特别是在人工智能应用的推动下&#xff0c;企业级SSD需求增加的同时&#xff0c;消费电子市场却依旧疲软。加之NAND供应商在2024年下半年积极扩大生产&#xff0c;预计到2024年第三季度&#xff0c;NAND闪存供应充足率将上升至2…

“郑商企航”暑期社会实践赴美丽美艳直播基地开展调研

马常旭文化传媒网讯&#xff08;记者张明辉报道&#xff09;导读&#xff1a;2024 年 7 月 3 日&#xff0c;商学院暑期社会实践团“郑商企航”在河南省郑州市新密市岳村镇美丽美艳直播基地&#xff0c;展开了一场意义非凡的考察活动&#xff0c;团队成员深度调研了直播基地的产…

【系统架构设计】计算机组成与体系结构(二)

计算机组成与体系结构 计算机系统组成存储器系统前言主存储器存储器存储数量&#xff08;计算&#xff09; 辅助存储器&#xff08;以磁盘为例&#xff09;Cache存储器 流水线 计算机系统组成 存储器系统 前言 存储器用来存放程序和数据的部件&#xff0c;是一个记忆装置&am…