摘要:
说明:这是来自(Sams) PostgreSQL,The comprehensive guide to building, programming, and administering PostgreSQL databases, Second Edition一书中第5章第二、三节的内容,从整体框架上解释了客户端是如何与服务器端建立连接的。译文:当你想要建立应用程序来连接一个PostgreSQL数据... 阅读全文
摘要:
要进行数据库连接的优化,很重要的一部分是通过创建数据连接池来统一分配和释放数据库连接。 pgpool-II是一个工作于PostgreSQL服务器端和PostgreSQL客户端之间的中间件,它提供了如下的功能:1.连接池 pgpool-II中保存了到PostgreSQL服务器的连接,然后当一个有着同样属性(也就是说用户名,数据库,协议版本相同)的新连接请求到来时,重用保存在pgpool-II中的连... 阅读全文
摘要:
为了便于对博客进行管理,请大家主动备份自己发表的文章(可以存放在自己的电脑上)。我在博客中上传了一篇利用ddd调试postgresql的文章,给出链接,大家下载下来研究以下。下载姓名:孙振兴 阅读全文
摘要:
说明:前一段时间一直在FreeBSD的操作系统环境下进行实验,但是由于多次安装桌面系统失败,所以无法及时更新日志。昨天换了Ubuntu系统,在Unix环境下摸索了3天之后,终于在Ubuntu上编译,安装PostgreSQL数据库,并且成功利用图形化调试程序DDD(Data Display Debugger)来以调试的方式运行程序,这对阅读代码十分有帮助。过程:在孙振兴同学转载的帖子(http://... 阅读全文
摘要:
在上一篇文章中,我们分析完了bufpage.c,今天我们来分析页面管理的第二个文件:itemptr.c。 这个文件里面只有两个函数,非常简短,这两个函数是对src\include\storage\itemptr.h文件中定义的结构体ItemPointerData的操作。下面,我们来看一看这个结构体: typedef struct ItemPointerData{BlockIdData ip_blk... 阅读全文
摘要:
本文将要介绍的安装是基于源码的安装,因此第一步是去postgresql的官网下载最新的源码。 有了源码之后,下一步就是编译了。为了调试postgresql的源码,编译的时候需要注意配置confgure选项。下边是具体的编译步骤。 1) :cd postgresql //postgresql位于主目录下。这一步是进入postgresql源码目录。注意该目录下有一个confgure文件。 2) :./... 阅读全文
摘要:
上一次对bufpage.c文件已经分析了一大半了,今天这里准备对这个文件里面剩余的函数分析完全。 下一个函数,我们先来看看它的声明:Size PageGetExactFreeSpace(Page page)。这个函数的功能是返回页面page已经分配的空余大小空间,这个与昨天分析的函数PageGetExacFreeSpace函数的区别是它返回的space并不扣除一个ItemIdData的存储空间。 ... 阅读全文
摘要:
allpath.c文件位于backend/optimizer/path文件夹下。该文件包含的函数如下所示:static void set_base_rel_pathlists(PlannerInfo *root);这个函数的作用是找出基本关系中每个实体可能的扫描路径,它会考虑顺序查找和基于索引的查找,然后把每个可用的查询路径插入pathlist。这个函数内部会调用set_rel_pathlist。... 阅读全文