暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c扩展查询概述

李雨晴 2022-04-26
519

在扩展查询协议中,SQL命令的执行是分割成多个步骤的。步骤与步骤之间保存的状态是由两类的对象代表的:预备语句(prepared statements)和入口(portals)。 一个预备语句代表一个文本查询字符串的经过分析、语意解析以及规划之后的结果。一个预备语句不代表它已经可以被执行,因为它可能还缺乏 参数的值。 一个入口代表一个已经可以执行的或者已经被部分执行过的语句,所有缺失的参数值都已经填充到位了(对于SELECT语句,入口等效于一个打开的游标, 但我们使用不同的术语是因为游标不能处理非SELECT语句)。

完整的执行周期包括一个分析步骤, 它从一个文本的查询字符串里创建一个预备语句; 一个绑定步骤, 它用一个预备语句和任何所需的参数值创建一个入口;以及一个 执行步骤,它运行一个入口中的查询。如果查询会返回数据行(SELECT、SHOW等), 执行步骤会被告知只抓取有限的一些行,这样就可能需要多个执行步骤来完成操作。

后端可以跟踪多个预备语句和入口(但是要注意,这些只存在于一个会话内部,不能在会话之间共享)。现有的预备语句和入口都是用创建它们的时候赋予的名字引用的。 另外,还存在一个“未命名” 的预备语句和入口。 尽管它们的行为和命名对象大部分相同,但是它们是针对只执行一次然后就抛弃的查询而优化的, 而在命名对象上的操作是针对多次使用而优化的。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论