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查询慢优化方案有一下几种解决方案: 1.关闭会话 查询慢sql的执行会话,关闭进程。 查看数据库后台连接进程 SELECT count(*) FROM pg_stat_activity;SELECT * FROM pg_stat_activity; 查看数据库后台连接进程,但是此条SQL不…...
Leetcode 21. 合并两个有序链表
题目描述 题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/ 思路 两个链表都是升序链表,新建一个链表,引入伪头节点作为辅助节点,将各节点添加到伪节点之后,再用一个cur节点指向新链表的…...
[tool] Ubuntu 设置开机启动python脚本
前言: 话说我每次设置的服务器,再次开机,ip都会随之改变,固定ip有时候确定不好用。所以为啥不让让每次启动都发送ip给我呢。 步骤: sudo touch /etc/rc.local sudo chmod 777 /etc/rc.local sudo systemctl enable rc-local.se…...
「何」到底该读「なん」还是「なに」?柯桥学日语
「何」到底该读「なん」还是「なに」? 首先,讲一个规律,大家记住就行。当「何」后面所接单词的第一个发音在“た”、“だ”、“な”行时,读作“なん”。一般这种情况下,后面跟的是の、でも、です和だ。 用例ÿ…...
github - 创建组织-Team
地址记录: github创建组织(organization) - 知乎...
【Transformer】自注意力机制Self-Attention | 各种网络归一化Normalization
1. Transformer 由来 & 特点 1.1 从NLP领域内诞生 "Transformer"是一种深度学习模型,首次在"Attention is All You Need"这篇论文中被提出,已经成为自然语言处理(NLP)领域的重要基石。这是因为Transfor…...
沁恒ch32V208处理器开发(四)串口通信
目录 串口资源资源配置同步模式单线半双工模式中断DMA 串口的初始化串口通信的实现 串口资源 资源配置 CH32V208 系列,是基于 RISC-V 指令架构设计的 32 位 RISC 内核 MCU,根据封装的不同,可用的USART串口资源如下表所示: 且US…...
【BASH】回顾与知识点梳理(十八)
【BASH】回顾与知识点梳理 十八 十八. 条件判断式18.1 利用 test 指令的测试功能文件类型判断文件权限侦测两个文件之间的比较两个整数之间的判定判定字符串的数据多重条件判定 18.2 利用判断符号 [ ]18.3 Shell script 的默认参数($0, $1...)shift:造成参数变量号码…...
linux 目录操作命令
目录操作命令 文件列表 ls命令文件列表 ls [选项] [参数]-------------------------------l 详细信息-L 紧接着符号性连接,列出它们指向的文件-a 所有文件,包含隐藏文件(以点号起始的文件)-A 与-a相同,但是不会列出来. 和 ..-c 根据创建时间排…...
React Dva项目小优化之redux-action
之前 我们讲过 models 接下啦 我们来给大家讲一个新的库 这个库的话 有最好 没有影响也不大 它主要是帮助我们处理 action的 我们直接在 GitHub 官网上搜索 redux-action 我们搜出来 第一个就是 从星数来看 还是非常优秀的 我们拉下来 找到这个Documentation 然后点击进去 进…...
Kotlin反射访问androidx.collection.LruCache类私有变量
Kotlin反射访问androidx.collection.LruCache类私有变量 androidx.collection.LruCache类中定义了一个名为map的LinkedHashMap,map存储了所有LruCache的数据,有时候需要遍历访问该LinkedHashMap,取出里面的值,但是LruCache代码实…...
高级进阶多线程——多任务处理、线程状态(生命周期)、三种创建多线程的方式
Java多线程 Java中的多线程是一个同时执行多个线程的进程。线程是一个轻量级的子进程,是最小的处理单元。多进程和多线程都用于实现多任务处理。 但是,一般使用多线程而不是多进程,这是因为线程使用共享内存区域。它们不分配单独的内存区域…...
【 K8S 】 Pod 进阶
目录 //资源限制官网示例:重启策略 //健康检查:又称为探针(Probe) //资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小,以及其他类型的资源。 当为 Pod 中…...
众和转债,宏微转债,阳谷转债上市价格预测
众和转债 基本信息 转债名称:众和转债,评级:AA,发行规模:13.75亿元。 正股名称:新疆众和,今日收盘价:8.14元,转股价格:8.2元。 当前转股价值 转债面值 / 转股…...
MySQL~事务的四大特性和隔离级别
事务的四大特性 1.原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个…...
JMeter处理接口签名之BeanShell实现MD5加密
项目A需要给项目B提供一个接口,这个接口加密了,现在需要测试这个接口,需要怎么编写脚本呢?实现接口签名的方式有两种:BeanShell实现MD5加密和函数助手实现MD5加密,之前已经分享过了函数助手实现MD5加密&…...
【Golang】一文学完 Golang 基本语法
Golang 下载 安装包链接:https://share.weiyun.com/InsZoHHu IDE 下载:https://www.jetbrains.com/go/ 第一个 golang 程序 package mainimport "fmt"func main() {fmt.Println("hello golang") }每个可执行代码都必须包含 Pack…...
《Java-SE-第三十五章》之方法引用
前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…...
Effective Java笔记(33)优先考虑类型安全的异构容器
泛型最常用于集合,如 Set<E >和 Map<K ,V>,以及单个元素的容器 ,如 ThreadLocal<T>和 AtomicReference<T> 。 在所有这些用法中,它都充当被参数化了的容器 。 这样就限制每个容器…...
释放AI创作潜能:从大模型训练到高产力应用
文章目录 每日一句正能量前言什么是人工智能生成内容(AIGC)人工智能生成内容(AIGC)能做什么为什么要用人工智能生成内容(AIGC)创作成果用Java实现冒泡排序算法学生信息收集系统学生请假管理系统需求分析教务…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
