首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pg_execute与pg_query的区别

pg_execute与pg_query的区别
EN

Stack Overflow用户
提问于 2013-12-06 12:16:14
回答 1查看 3.2K关注 0票数 2

pg_execute和pg_query有什么区别?

我对此知之甚少。

代码语言:javascript
复制
pg_execute: Use to execute query with prepare statement.

pg_query: Use to execute query without prepare statement.

我说的对吗?

有人能解释更多吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-06 12:35:55

首先,我要解释一下什么是准备好的陈述。任何查询的执行都必须跨越某些阶段--解析、计划+优化、绑定、执行。前两个阶段的结果是执行计划。如果您用某个名称保存它,那么您将得到一个准备好的语句。你应该这么做是有原因的。一种是重复执行SQL语句的性能。

您可以用语句准备来做准备语句。

代码语言:javascript
复制
postgres=# PREPARE xx(text) AS SELECT * FROM pg_class WHERE relname = $1;
PREPARE

您可以通过语句执行执行此准备好的语句。

代码语言:javascript
复制
postgres=# EXECUTE xx('foo');
─[ RECORD 1 ]──┬────────────
relname        │ foo
relnamespace   │ 2200
reltype        │ 16412
reloftype      │ 0
relowner       │ 16384

它类似于

代码语言:javascript
复制
SELECT * FROM pg_class WHERE relname = 'foo'

但是,您可以将它用于不同的参数,并且可以节省一些CPU时间,因为解析和规划是不必要的。

因此,pg_execute是执行任何准备好的语句的函数--您必须预先准备好语句。执行语句是类推的。

pg_query用于执行输入为字符串的查询-- "SELECT * FROM .“

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20423706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档