Postgresql system Catalog 中的系统表能告诉你什么 (一)?

本文介绍了PostgreSQL系统目录(system catalog)的作用及如何利用它来理解数据库系统的运作。重点讲解了元数据的意义及其在数据库中的应用,特别是通过pg_stat_database和pg_stat_bgwriter表来监测数据库性能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在数据库中如果说schema 那基本上大部分人都能明白其中含义,而如果说catalog 则不少人会恍惚,到底catalog 是什么,对于postgresql 有什么用

实际上postgresql system catalog 是一个包含了元数据的VIEW 和表的一个schema, 这个system 的catalog 是了解和解决一些基础问题的东西。

如何去从中获取数据以及通过这些数据来去了解系统的运作,是我们必须要做的。那么什么是元数据,metadata,并且这个metadata到底在所有的数据库中起到什么作用。

下面有三个解释对于METADATA 

1 提供关于数据库的系统的信息

2 通过这些数据来了解理解系统的工作的特性和原理以及当前情况

3 元数据可以通过手动的方式创建也可以自动的去获取信息

元数据一般会记录什么样的信息,这里有一个定义

classes general thing , types of things

Instances  information

Relationships amony things

Properties of things

Functions , processes , constraints and rules relating to things.

当然catalog 本身等同于database  的概念

那么如何让我们的postgresql 的 system catalog 展现需要通过

\dS 来进行

那么这些pg_catalog 的有多少个VIEW 或者 表

以 PG12来说目前的表有243个系统表

下面挑选一些systam catalog 通过下面的学习,知道如何快速的了解系统的情况

pg_stat_database 中可以

1 通过 xact_commit  和  xact_rollback 两个值可以获得这个数据库中当前执行的commit 操作和数据库回滚的操作的比。

2 blks_read blks_hist 两个参数可以获得当前数据库的数据有多少是从磁盘中获得的,有多少数据是从内存中获得的。

3  这个数据库中有多少行的插入,更新和删除

4  conflicts 的主要作用是研究作为备库的时候,postgresql到底取消了多少查询

5  deadlocks 这个数据库发生死锁的次数

6  stats_reset 的意思是以上信息生效的时间,也就是这台机器上次重启动或开启的时间。

从统计和分析的角度来说,获取这些数据可以分析出例如升级完毕后系统的稳定性,或者变动的一些特性有助于发现问题。

pg_stat_bgwriter 这个表本身要从 postgresql 写数据开始,PG写数据到磁盘上是有几种不同的路径的,数据在内存中被改变后如何刷入到磁盘文件中,

是有checkpoint 写入的还是通过background wirter 写入的,check_points_timed和checkpoints_req 两个说明,到目前为止进行了多少次checkpoint 以及强制checkpoint。

checkpoint_write_time 时间是从开始到目前为止,一直写入数据的总消耗的时间,单位毫秒。

到这里必然需要说明checkpoint 和 bgwriter的不同

1 bgwriter 是数据库将share buffer中的数据写入实际的表中的负责的进程

2 checkpoint 面对的 wal file,在将数据刷入wal后,才轮到bgwriter将数据刷入到表文件。

两个进程面对的文件不同,要完成的使命也不同,先后顺序也不同

checkpoint 在前 日志写入在前, 数据文件写入在后, 一个是为了防止系统crash后数据产生丢失的问题,一个实际是为了将实体数据写入到表文件中,一个面对的是WAL 文件 一个面对的 数据文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值