理解PostgreSQL中的“LOG: execute S_1: BEGIN”

7

我使用了“all”选项打开了Postgres的日志记录,并且日志中显示了LOG: execute S_1: BEGIN

S_1是什么意思?

2个回答

8
这条日志格式表示使用了扩展查询协议

根据相关文档,前端首先发送一个解析消息,其中包含文本查询字符串、有关参数占位符数据类型的可选信息以及目标准备语句对象的名称(空字符串选择未命名的准备语句)。
日志中的 S_1 对应于该名称。
如果应用程序使用 C 库 libpq 或基于它的层,则 PQpreparePQexecPreparedPQexecParams 等 libpq 函数构建在扩展协议上。而旧版 PQExec 只使用简单查询协议。

1

BEGIN被包装到一个准备语句中,该语句被命名为"S_1"。这个名称可能是由你所使用的连接到PostgreSQL的库自动生成的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接