八珍豆腐 2022-01-21 14:14 采纳率: 0%
浏览 10
已结题

GBase 8s里如何获取并显示ESQLC程序发送的SQL语句?

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

  • 写回答

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语句:

    img

    编译demo1.ec, 在demo/esqlc目录下执行make demo1
    编译完毕后,执行./demo1
    检查/tmp目录下生成的文件:

    img

    通过执行sqliprint命令,参数为/tmp目录下刚刚生成的文件

    img

    就可以查看ESQL/C程序与数据库服务器之间交互信息了,以下是发送的SQL语句信息节选:

    img

    上图中包含客户端向服务器发送的信息:
    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语句返回的各个列的信息,如列名称,列类型,列长度等等。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月29日
  • 创建了问题 1月21日

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型