PostgreSQL解析器的功能说明

当应用程序向PostgreSQL系统提交一个查询时,一般要经过五个阶段:

    (1)联接阶段;(2)分析阶段;(3)重写阶段;(4)优化阶段;5)执行阶段。

PostgreSQL采用“每用户一进程”的Client/Server模型。在这种模型里一个客户端进程只与一个服务器进程联接,即每一个客户端与每一个进程关系一一对应。因为不知道具体要建立多少个联接,所以不得不利用一个主进程在每次联接请求时派生出一个新的服务器进程来。这个主进程叫做postmaster,它监听着一个特定的TCP尸端口(缺省为5432)等待联接。每当检测到一个联接请求时,postmaster进程派生出一个新的叫postgre服务器进程。从中可见,其实主进程postmaster所起的作用就是监听客户端发送请求与否,若发送了一个查询请求则派生一个postgre进程与发送请求的客户端唯一的对应;若无请求,则主进程继续等待。

      postgre进程相互之间使用信号灯和共享内存进行通讯,以确保在并行的数据访问过程中的数据完整性。图1显示了主进程postmaster,服务器进程postgre和客户端应用之间的相互关系。一旦建立起来一个联接,客户端进程就可以向后端服务器进程发送查询了。查询是通过纯文本传输的,也就是说在前端不做任何分析处理.服务器分析查询,创建执行规划,执行该规划并且通过已经建立起来的联接把检索出来的记录返回给客户端。

      PostgreSQL解析器的功能就其目的性来说,就是检查从应用程序(客户端)发送过来的查询,核对语法并创建一个查询树(querytree)

      姓名:曹阳    主题:PostgreSQL解析器

 


 

posted @ 2010-01-16 18:44  电信415实验室  阅读(1292)  评论(0编辑  收藏  举报