环境变量的设置,和一些详细的语句有哪些?
比如获取并分析GBase8s ESQL/C程序与数据库服务器之间交互的信息这种?

GBase 8s里如何获取并显示ESQLC程序发送的SQL语句?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 八珍豆腐 2022-01-21 14:24关注
有些时候, 需要获取并分析GBase8s ESQL/C程序与数据库服务器之间交互的信息。
这个时候就可以设定环境变量SQLIDEBUG, 例如:
export SQLIDEBUG=2:/tmp/sqlidebug_20220120
其中,2是常量, “:” 冒号后边的生成的文件前缀名称。设定完毕后,执行esql程序,例如编译执行CSDK中的demo/esqlc/demo1.ec
demo1.ec中包含下面的SQL语句:编译demo1.ec, 在demo/esqlc目录下执行make demo1
编译完毕后,执行./demo1
检查/tmp目录下生成的文件:通过执行sqliprint命令,参数为/tmp目录下刚刚生成的文件
就可以查看ESQL/C程序与数据库服务器之间交互信息了,以下是发送的SQL语句信息节选:
上图中包含客户端向服务器发送的信息:
1.C->S 中的C是指客户端, S是指服务器端, ->是方向。
C->S就是客户端向服务器端发送指令。
2.SQ_COMMAND,表明发送的是SQL语句
CMD是具体的SQL语句
3.SQ_NDESCRIBE,表明客户端需要服务器端返回SQL语句的描述信息。
4.SQ_EOT,表明命令结束。服务器向客户端发送的信息:
1)S->C: 表明是服务器端向客户端发送的信息。
2)SQ_DESCRIBE: 与客户端的SQ_NDESCRIBE向对应,是服务器端向客户端返回的SQL语句描述信息, 描述信息中包含了
2.1) SQL语句的类型 stmt_type
2.2) SQL语句返回的各个列的信息,如列名称,列类型,列长度等等。解决 无用评论 打赏 举报