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

PostgreSQL查询慢sql原因和优化方案

PostgreSQL sql查询慢优化方案有一下几种解决方案:

1.关闭会话

查询慢sql的执行会话,关闭进程。

查看数据库后台连接进程

SELECT count(*) FROM pg_stat_activity;SELECT * FROM pg_stat_activity;

查看数据库后台连接进程,但是此条SQL不包含当前查询进程

SELECT count(*) FROM pg_stat_activity WHERE NOT pid=pg_backend_pid();SELECT * FROM pg_stat_activity WHERE NOT pid=pg_backend_pid();

查看当前慢SQL,例如查询执行时间超过1秒的SQL

select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '1 s' order by query_start ; 

可以使用pg_terminate_backend()终止连接。您必须是超级用户才能使用此功能。这在所有操作系统上都是相同的。

SELECTpg_terminate_backend(pid)
FROMpg_stat_activity
WHERE-- 不删除当前连接pid <> pg_backend_pid()-- 不删除当前连接数据库database_name的连接AND datname = 'database_name';

2.版本升级:

将PostgreSQL版本升级到最新版本,以实现更好的性能和功能。

查看服务器端版本

2.1 查看详细信息

SELECT version();

2.2 查看版本信息

SHOW server_version;

2.3 查看数字版本信息包括小版号

SHOW server_version_num;

升级为更高的版本。 

3.优化内存和缓存

调整PostgreSQL内存设置,如shared_buffers和effective_cache_size等参数。

要让PostgreSQL达到最佳性能,还要使用像pg_tune这样的PostgreSQL优化工具,可以根据系统的内存大小,I/O和网络性能,来调整PostgreSQL参数。例如常用的shared_buffers和effective_cache_size,它们是与访问文件并维护内存缓存有关的重要参数,可以控制PostgreSQL访问磁盘文件的频繁程度。除此之外,还可以根据测试结果做出改变,例如increasing wal_buffers to improve write performance,这有助于将PostgreSQL写入操作提升到最高水平。

最后,正确的PostgreSQL内核性能调优优化必须包含两个要素:PostgreSQL参数设置以及服务器的配置。因此,对于数据库管理员或性能调优者而言,正确的性能调优优化消耗大量时间,但它也是实现PostgreSQL最佳性能的必要之道。

举例来说,想要提升PostgreSQL的性能,可以使用以下代码:

ALTER SYSTEM SET shared_buffers = '1000MB';ALTER SYSTEM SET effective_cache_size = '2000MB';ALTER SYSTEM SET wal_buffers = '12MB';

一般shared_buffers 值应该被设为整个机器内存的 15% ~ 25%。

effective_cache_size参数有操作系统和数据库评估多少内存可用磁盘缓存,PostgreSQL查询计划决定它是否固定在RAM中。索引扫描最有可能用于较高的值;如果该值为低将使用顺序扫描。建议将effecve_cache_size设置为机器总RAM的50%。

wal buffer是预写日志(wal)缓冲区,缓冲区的默认大小由wal_buffers设置设置—最初为16MB。如果要调优的系统有大量并发连接,那么wal_buffers的值越高,性能越好。

4.合理的索引

建立合理的索引可以极大的提高查询性能。

可以使用navicat ,选中数据库,右键》》维护》》重建索引

5.优化表设计

将表分成有意义的符合逻辑的、尽可能小和彼此独立的部分,以减少查询中的不必要数据量。

6.安装和使用适当的扩展

安装如pgTune和pgBadger等与PostgreSQL性能优化的工具,以及如pg_hint_plan和pg_stat_statements等扩展程序。

相关文章:

PostgreSQL查询慢sql原因和优化方案

PostgreSQL sql查询慢优化方案有一下几种解决方案&#xff1a; 1.关闭会话 查询慢sql的执行会话&#xff0c;关闭进程。 查看数据库后台连接进程 SELECT count(*) FROM pg_stat_activity;SELECT * FROM pg_stat_activity; 查看数据库后台连接进程&#xff0c;但是此条SQL不…...

Leetcode 21. 合并两个有序链表

题目描述 题目链接&#xff1a;https://leetcode.cn/problems/merge-two-sorted-lists/description/ 思路 两个链表都是升序链表&#xff0c;新建一个链表&#xff0c;引入伪头节点作为辅助节点&#xff0c;将各节点添加到伪节点之后&#xff0c;再用一个cur节点指向新链表的…...

[tool] Ubuntu 设置开机启动python脚本

前言&#xff1a; 话说我每次设置的服务器&#xff0c;再次开机&#xff0c;ip都会随之改变&#xff0c;固定ip有时候确定不好用。所以为啥不让让每次启动都发送ip给我呢。 步骤: sudo touch /etc/rc.local sudo chmod 777 /etc/rc.local sudo systemctl enable rc-local.se…...

「何」到底该读「なん」还是「なに」?柯桥学日语

「何」到底该读「なん」还是「なに」&#xff1f; 首先&#xff0c;讲一个规律&#xff0c;大家记住就行。当「何」后面所接单词的第一个发音在“た”、“だ”、“な”行时&#xff0c;读作“なん”。一般这种情况下&#xff0c;后面跟的是の、でも、です和だ。 用例&#xff…...

github - 创建组织-Team

地址记录&#xff1a; github创建组织(organization) - 知乎...

【Transformer】自注意力机制Self-Attention | 各种网络归一化Normalization

1. Transformer 由来 & 特点 1.1 从NLP领域内诞生 "Transformer"是一种深度学习模型&#xff0c;首次在"Attention is All You Need"这篇论文中被提出&#xff0c;已经成为自然语言处理&#xff08;NLP&#xff09;领域的重要基石。这是因为Transfor…...

沁恒ch32V208处理器开发(四)串口通信

目录 串口资源资源配置同步模式单线半双工模式中断DMA 串口的初始化串口通信的实现 串口资源 资源配置 CH32V208 系列&#xff0c;是基于 RISC-V 指令架构设计的 32 位 RISC 内核 MCU&#xff0c;根据封装的不同&#xff0c;可用的USART串口资源如下表所示&#xff1a; 且US…...

【BASH】回顾与知识点梳理(十八)

【BASH】回顾与知识点梳理 十八 十八. 条件判断式18.1 利用 test 指令的测试功能文件类型判断文件权限侦测两个文件之间的比较两个整数之间的判定判定字符串的数据多重条件判定 18.2 利用判断符号 [ ]18.3 Shell script 的默认参数($0, $1...)shift&#xff1a;造成参数变量号码…...

linux 目录操作命令

目录操作命令 文件列表 ls命令文件列表 ls [选项] [参数]-------------------------------l 详细信息-L 紧接着符号性连接&#xff0c;列出它们指向的文件-a 所有文件&#xff0c;包含隐藏文件(以点号起始的文件)-A 与-a相同&#xff0c;但是不会列出来. 和 ..-c 根据创建时间排…...

React Dva项目小优化之redux-action

之前 我们讲过 models 接下啦 我们来给大家讲一个新的库 这个库的话 有最好 没有影响也不大 它主要是帮助我们处理 action的 我们直接在 GitHub 官网上搜索 redux-action 我们搜出来 第一个就是 从星数来看 还是非常优秀的 我们拉下来 找到这个Documentation 然后点击进去 进…...

Kotlin反射访问androidx.collection.LruCache类私有变量

Kotlin反射访问androidx.collection.LruCache类私有变量 androidx.collection.LruCache类中定义了一个名为map的LinkedHashMap&#xff0c;map存储了所有LruCache的数据&#xff0c;有时候需要遍历访问该LinkedHashMap&#xff0c;取出里面的值&#xff0c;但是LruCache代码实…...

高级进阶多线程——多任务处理、线程状态(生命周期)、三种创建多线程的方式

Java多线程 Java中的多线程是一个同时执行多个线程的进程。线程是一个轻量级的子进程&#xff0c;是最小的处理单元。多进程和多线程都用于实现多任务处理。 但是&#xff0c;一般使用多线程而不是多进程&#xff0c;这是因为线程使用共享内存区域。它们不分配单独的内存区域…...

【 K8S 】 Pod 进阶

目录 //资源限制官网示例&#xff1a;重启策略 //健康检查&#xff1a;又称为探针&#xff08;Probe&#xff09; //资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。 当为 Pod 中…...

众和转债,宏微转债,阳谷转债上市价格预测

众和转债 基本信息 转债名称&#xff1a;众和转债&#xff0c;评级&#xff1a;AA&#xff0c;发行规模&#xff1a;13.75亿元。 正股名称&#xff1a;新疆众和&#xff0c;今日收盘价&#xff1a;8.14元&#xff0c;转股价格&#xff1a;8.2元。 当前转股价值 转债面值 / 转股…...

MySQL~事务的四大特性和隔离级别

事务的四大特性 1.原子性&#xff1a;一个事务&#xff08;transaction&#xff09;中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成。事务在执行过程中发生错误&#xff0c;会被回滚&#xff08;Rollback&#xff09;到事务开始前的状态&#xff0c;就像这个…...

JMeter处理接口签名之BeanShell实现MD5加密

项目A需要给项目B提供一个接口&#xff0c;这个接口加密了&#xff0c;现在需要测试这个接口&#xff0c;需要怎么编写脚本呢&#xff1f;实现接口签名的方式有两种&#xff1a;BeanShell实现MD5加密和函数助手实现MD5加密&#xff0c;之前已经分享过了函数助手实现MD5加密&…...

【Golang】一文学完 Golang 基本语法

Golang 下载 安装包链接&#xff1a;https://share.weiyun.com/InsZoHHu IDE 下载&#xff1a;https://www.jetbrains.com/go/ 第一个 golang 程序 package mainimport "fmt"func main() {fmt.Println("hello golang") }每个可执行代码都必须包含 Pack…...

《Java-SE-第三十五章》之方法引用

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水平很有限&…...

Effective Java笔记(33)优先考虑类型安全的异构容器

泛型最常用于集合&#xff0c;如 Set<E &#xff1e;和 Map<K ,V&#xff1e;&#xff0c;以及单个元素的容器 &#xff0c;如 ThreadLocal<T>和 AtomicReference<T&#xff1e; 。 在所有这些用法中&#xff0c;它都充当被参数化了的容器 。 这样就限制每个容器…...

释放AI创作潜能:从大模型训练到高产力应用

文章目录 每日一句正能量前言什么是人工智能生成内容&#xff08;AIGC&#xff09;人工智能生成内容&#xff08;AIGC&#xff09;能做什么为什么要用人工智能生成内容&#xff08;AIGC&#xff09;创作成果用Java实现冒泡排序算法学生信息收集系统学生请假管理系统需求分析教务…...

为什么90%的职场人低估了AGI的就业穿透力?——基于神经符号系统演进的5级替代模型分析

第一章&#xff1a;AGI与就业市场的未来变化 2026奇点智能技术大会(https://ml-summit.org) 通用人工智能&#xff08;AGI&#xff09;的实质性突破正从理论推演加速迈向工程落地&#xff0c;其对就业结构的影响已不再是远期预测&#xff0c;而是正在发生的系统性重构。不同于…...

FPGA调试效率倍增器——基于JTAG to AXI Master的自动化脚本实践

1. 为什么你需要JTAG to AXI Master自动化脚本 第一次接触FPGA调试时&#xff0c;我总是一个个手动输入Tcl命令来读写寄存器。每次修改一个参数都要重复输入十几行命令&#xff0c;不仅效率低下还容易出错。直到发现JTAG to AXI Master IP配合自动化脚本&#xff0c;调试效率直…...

KICS 认知公尺:一把无法拒绝的公尺与人类规则意志的复活

KICS 认知公尺&#xff1a;一把无法拒绝的公尺与人类规则意志的复活摘要&#xff1a; 面对 AI 幻觉泛滥与全球监管真空&#xff0c;KICS 以四封密函向权力心脏精准喊话——给政客监管抓手以填补主权真空&#xff0c;给资本万亿美元基础设施以锚定未来关税区&#xff0c;给学界规…...

如何快速掌握开源语音合成:VOICEVOX专业用户的终极秘诀

如何快速掌握开源语音合成&#xff1a;VOICEVOX专业用户的终极秘诀 【免费下载链接】voicevox 無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのエディター 项目地址: https://gitcode.com/gh_mirrors/vo/voicevox VOICEVOX是一款完全免费开源的日语语音合…...

精读Mem0论文|通俗解读+全网补充,让AI拥有“长效记忆”不再是难题

精读Mem0论文&#xff5c;通俗解读全网补充&#xff0c;让AI拥有“长效记忆”不再是难题 大家好&#xff0c;今天咱们精读一篇近期爆火的AI记忆领域论文——《Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory》&#xff0c;同时结合全网相关资讯&am…...

用GEE和Sentinel-5P数据,5分钟搞定城市空气质量变化趋势分析(以NO2、O3为例)

城市空气质量动态监测&#xff1a;基于GEE与Sentinel-5P的高效分析实战 清晨打开天气预报APP时&#xff0c;那些跳动的空气质量指数背后&#xff0c;其实隐藏着卫星每天扫描地球大气层产生的海量数据。作为环境研究者&#xff0c;我们完全可以通过Google Earth Engine&#xff…...

Grafana 13.0.1 正式发布,带来 Dashboard、Provisioning 功能更新与 Bug 修复

Grafana 作为监控和可观察性的开源平台&#xff0c;能可视化多来源指标、日志。近日&#xff0c;Grafana 13.0.1 正式发布&#xff0c;带来了一系列更新。 平台简介 Grafana 是用于监控和可观察性的开源平台&#xff0c;可将来自 Prometheus、Loki 等多个来源的指标、日志等进行…...

为什么父母总学不会用新App,问题不在他们

教父母用智能手机&#xff0c;可能是当代子女最头疼的事之一。一个简单的操作教了七八遍&#xff0c;他们转头就忘。你忍不住提高音量&#xff0c;他们委屈地说“我老了&#xff0c;学不会了”。但问题真的出在父母身上吗&#xff1f;换一个角度&#xff0c;你会发现根本不是他…...

静息态fMRI预处理实战:从DICOM到ALFF的完整流程解析

1. 静息态fMRI预处理入门指南 第一次接触静息态fMRI数据时&#xff0c;我被满屏的DICOM文件搞得晕头转向。这些医学影像数据就像一堆未经整理的拼图碎片&#xff0c;需要我们通过预处理流程将它们转化为可分析的标准化数据。静息态fMRI&#xff08;rs-fMRI&#xff09;记录了大…...

Unity ApplyShadowBias 返回什么,什么是Shadow Map 采样,什么是阴影 acne(纹波/摩尔纹) 和 peter-panning(悬空阴影)

在 Unity 的阴影渲染中&#xff0c;这几个概念紧密相关&#xff0c;理解它们能帮你更好地调试阴影效果。1. ApplyShadowBias 返回什么&#xff1f;ApplyShadowBias 是 Unity 内部用于渲染阴影贴图&#xff08;Shadow Map&#xff09;时的一个函数&#xff0c;你通常不会直接调用…...