Recent Posts

PostgreSQL 9.5 new feature - table mview data sample

3 minute read

背景 PostgreSQL 9.5支持的新特性,数据采样。有了这个功能,如果能结合pg_dump使用的话,可以为比较大的生产数据库创建较小的测试环境。当然,如果是这样的话采样还需要考虑数据关联的问题。 用户可以自定义采样方法,或者使用系统自带的两种采样方法(基于所有数据块的选择性采样,以及基于全表的选择性采样)...

PostgreSQL 审计 - pg_audit module

5 minute read

背景 以前写过一些PostgreSQL审计相关的文章,有些是通过系统自带的参数来配置审计功能的,还有是通过扩展模块来配置审计的,还有通过事件触发器,或者触发器来实现跟踪和审计的。如下: 1. PostgreSQL自带的日志审计,实现语句级别,数据库级别,用户级别的审计。 弊端是审计颗粒度太大。 http:/...

PostgreSQL Oracle 兼容性 自治事务 - partial/sub commit within function

2 minute read

背景 PostgreSQL的函数是原子操作,所以不能像Oracle那样在函数中实现分段提交。 但是如果你要从Oracle迁移到PostgreSQL的话,必然会面临这样的问题,那么怎么办呢? 有几种方法可以来实现,下面是例子: 1. 通过exception来实现分段提交。 create table tbl ...

PostgreSQL 代码性能诊断之 - OProfile & Systemtap

7 minute read

背景 在跑benchmark时,遇到瓶颈如何分析 问题出在哪里呢? 在编译PostgreSQL 时可以使用–enable-profiling开关,打开GCC的profile输出,用作诊断。 《Greenplum PostgreSQL –enable-profiling 产生gprof性能诊断代码》 另外,也...

Roaring Bitmap - A better compressed bitset

2 minute read

背景 A better compressed bitset Bitsets, also called bitmaps, are commonly used as fast data structures. Unfortunately, they can use too much memory. To compe...

PostgreSQL 检查点性能影响及源码分析 - 7

9 minute read

背景 数据库可靠性从何而来? 数据库崩溃后如何恢复,从什么位置开始恢复? 数据库检查点是什么? 检查点要干些什么? 为什么脏数据较多时,检查点会对性能有一定的影响? 什么是full page write? 相信这些问题是搞数据库的同学都想搞明白的。 接下里的一系列文章,围绕检查点展开讲解,讲一讲检查...