摘要:
1、AutoVacuum概述 PostgreSQL数据库是有数据清理的,有人工执行清理,也有自动清理,但是这2种的清理方式对性能是有不同的影响,特别是OLTP环境中,每次不管是人工清理还是自动清理dead tuple,都会对数据库的IO有明显的影响,基于PostgreSQL 的原理每个表中的行会存在 阅读全文
摘要:
一、数据库连接断开的原因 连接断开的可能原因有多种: 1、数据库服务器崩溃 如果服务器由于某种原因崩溃,要调查服务器是否存在问题,您应该首先查看 PostgreSQL 日志,看看是否可以找到匹配的崩溃报告。 2、客户端放弃的连接 如果客户端在没有正确关闭数据库连接的情况下退出,服务器在网络套接字上通 阅读全文
摘要:
背景 不久前,遇到过一个问题。Postgresql 数据库主机系统触发OOM现象是数据库进程被KILL, 数据库进入crash然后restart(when restart_after_crash=on). 导致OOM的原因很多, 当然要具体情况,具体分析。从数据库层面分析内存分为共享内存(share 阅读全文
摘要:
一、查找cache hit ratio 查看cache hit ratio 这个东西其实放到其他数据库也是一样,如果你的内存对于系统的缓冲支持不足,需要的数据无法驻留在内存,经常会产生 fault page (有些数据库对于读取的数据不在内存中的一种叫法), 那就必须要要查看你的一个系统参数 cac 阅读全文
摘要:
一、概述 索引通常被认为是SQL性能调优的灵丹妙药,PostgreSQL针对不同用例提供了不同类型的索引。经常看到许多关于“调优"的文章和讨论,讨论如何创建新索引来加快SQL的速度,但很少有人讨论删除它们。人们发现,创建越来越多索引的冲动在许多系统中造成了严重的破坏。很多时候,为了整个系统的利益,在 阅读全文
摘要:
1、简介 WalMiner是从PostgreSQL的WAL(write ahead logs)日志的解析工具,旨在挖掘wal日志所有的有用信息,从而提供PG的数据恢复支持,3.0支持PostgreSQL10及其以上版本(pg14.2版本暂不支持,已与作者沟通)。 WalMiner可以从waL日志中解 阅读全文
摘要:
前言 使用top命令查看内存时,会发现有一些PostgreSQL进程占用了很大的内存,用ps aux常看各个进程的内存时,如果把各个进程的内存加起来时,发现超过了总内存,所以很困惑。 原理解释 我们用top查看时,有时会看到某个PostgreSQL进程占用的内存很大,如下图所示 从上图中可以看到进程 阅读全文
摘要:
一、 检查点触发机制 在PostgreSQL中,检查点(后台)进程执行检查点;当发生下列情况之一时,其进程将启动: 1、检查点间隔时间由checkpoint_timeout设置(默认间隔为300秒(5分钟)) 2、在9.5版或更高版本中,pg_xlog中WAL段文件的总大小(在10版或更高版本中为p 阅读全文
摘要:
函数稳定态影响SQL 索引使用、分区剪枝。本文通过展示稳定态对于分区剪枝功能的影响。 一、构建测试例子 create table test_part1(id integer,part_date date,name text) partition by range(part_date) ( parti 阅读全文
摘要:
一、内容概述 对于数据严重倾斜的,制定执行计划时,如果不知道变量的值,可能导致生成的执行计划效率低下。极端如以下例子,不同的传入值,可能执行计划不同。对于绑定变量的情况,我们知道Oracle 有 _optim_peek_user_binds 参数,控制是否启用变量窥探。KingbaseES 也有类似 阅读全文