当前位置: 首页 > news >正文

中国建设银行中国网站工装哪家装修公司好

中国建设银行中国网站,工装哪家装修公司好,烟台公司网站定制,合肥蜀山网站开发1.介绍 本篇博客用于解释扩展协议的工作原理以及它与简单查询的区别。 2.简单查询 在PostgreSQL中#xff0c;客户端连接能够发起两种类型的查询#xff1a;简单查询和扩展协议查询。 简单查询顾名思义。 当启动 psql 客户端连接到pg服务器时#xff0c;几乎所有发送的…1.介绍 本篇博客用于解释扩展协议的工作原理以及它与简单查询的区别。 2.简单查询 在PostgreSQL中客户端连接能够发起两种类型的查询简单查询和扩展协议查询。 简单查询顾名思义。 当启动 psql 客户端连接到pg服务器时几乎所有发送的sql命令会被视为简单查询。 包括使用 begin 和 commit 包起来的显式事务使用分号分割的多语句查询执行或定义函数等等。 简单查询自动遵循标准查询处理流程其中包括以下阶段 ParserAnalyzerRewriterPlannerExecutor 这些具体含义这里不再赘述。网上的资料很多。 客户端和服务器之间的通信也非常简单。 case 1, insert 客户端将查询发送到服务器进行处理服务器响应一个 CommandComplete 消息比如 INSERT 0 1接一个ReadyForQuery(IDLE)消息表示现在服务器已经完成了查询目前是闲置状态客户端可以发送另一个查询新的查询遵循同样的逻辑。 case 2, select 在 SELECT 查询的情况下服务器将先发送结果 row 的行结构描述然后发送满足查询的实际行数据直到没有更多行可返回为止。 最后服务器发送一个 ReadyForQuery(IDLE) 消息表明服务器已经完成查询现在处于空闲状态。 3.扩展协议查询 扩展查询是客户端完成查询的另一种方式它将标准查询处理分解为不同的步骤 。客户端需要确保正确执行这些步骤。 客户端能够发送以下协议消息类型来控制 ‘P’ message (Parse) 采用通用查询字符串其中数据值替换为 $1、$2 等占位符稍后可以在 B’ 步骤中替换为实际值。该字符串会经历以下阶段Parser - Analyzer - Rewriter在 Parse 阶段成功后会创建一个 prepared statement 类别于sql中的PREPAREprepared statement 可以是 命名 或者 未命名 的下面详细介绍prepared statement 只是输入查询的一种表示还不能执行。 ‘B’ message (Bind) B 阶段将会把 ‘P’ 阶段创建的prepared statement替换掉 $1、$2 等占位符改为用户提供的值。将值替换掉后将会获得一个完整的查询语句之后会由Planner生成执行计划。构建执行计划成功后会生成一个portal。portal也可以是命名或者未命名的。portal基本上是一个对象表示如何执行特定查询。 ‘E’ message (Execute) ‘E’ 阶段会真正执行 ‘B’ 阶段生成的portal对象。生成结果行如果有然后发送给客户端。 ‘S’ message (Sync) 在一条语句最后客户端必须向服务器发送 S 消息以指示扩展查询的结束。此消息会让服务器结束当前事务并将 ReadyForQuery(IDLE) 消息发送回客户端。 将一个简单的查询分成多个步骤的目的是什么 使用扩展查询的一大好处是它可以节省大量不必要的相同查询结构的解析。 相反我们可以只解析一次公共结构然后多次绑定和执行不同的值。 4. 命名和未命名的prepared statement、portal 这一节用来讨论命名和未命名的prepared statement、portal有什么意义。 一般情况下PostgreSQL 服务器只能保留一个未命名的prepared statement或者portal。 新的未命名的prepared statement或者portal将替换现有的。 而使用命名的prepared statement或者portal服务端将会进行存储客户端可随时调用或者发送Close message.进行销毁。 因此客户端可以在一个事务中创建多个prepared statement每个都有不同的名字然后通过给它们不同的portal名称同时为它们绑定值。最终客户端选择要执行的portal。 More importantly, named prepared statement’s life time lasts for the entire TCP session unless explicitly destroyed; named portal lasts only until the end of transaction or when it is executed or explicitly destroyed. 以libpq为例当使用扩展查询时需要客户端应用提供prepared statement name来构造P(Parse)消息而不需要客户端应用提供portal name来构造B(Bind)消息。 这意味着使用 libpq我们可以使用不同的prepared statement名但是对于 B 消息它强制使用unnamed portal所以我们总是有一个portal执行这避免了在客户端管理多个portal名称的情况。 翻译自 A Look Inside PostgreSQLs Extended Query Protocol - Highgo Software Inc.
http://www.hkea.cn/news/14358329/

相关文章:

  • 安平做网站前端开发工程师要求
  • 支付网站开发一起做网店潮汕
  • 创建游戏网站游戏网站开发需求分析
  • 互联网保险平台哪家最好网站关键字优化价格
  • 网站经营性备案需要什么资料中英双语网站源码
  • 雅安市网站建设网络营销工具主要类型有
  • 营销型网站建设eyouc雄安建设工程信息网站
  • 医院手机网站建设网站不备案打不开
  • 广州 骏域网站建设专家dw软件是做什么用的
  • 中国科协网站建设招标网站做公司简介怎么做
  • 企业微网站建设方案wordpress安装500错误
  • 中山建设工程招聘信息网站仿站视频教程
  • asp做的网站设计电脑网页
  • 淄博个人网站建设大连是谁建设的
  • 网站设计申请书设计一个个人网站的具体步骤
  • 安徽省建设厅网站职称网站建设一般收费
  • 需要做网站设计wordpress 未分类
  • 互动网站制作网站建设 太原
  • 中国临海建设规划局网站石排镇做网站
  • 南宁网站建设接单aspx网站配置服务器
  • 怎么用电脑给域名做网站网站被刷流量怎么办
  • 空间站建造阶段无锡建设银行网站
  • 响应式学校网站模板下载能打开各种网站的浏览器
  • 学习做网页的网站互联网站建设用法
  • 网站建设方面书籍对象储存做网站
  • 网页是网站吗手机网站搜索
  • 中国建设工程造价协会网站主题网络图怎么设计
  • 为什么做腾讯网站商城网站做推广有什么好处
  • 网站空间站专业的外贸行业网站开发
  • 洛阳网站建设找洛阳铭信网络房地产首页设计