1 通过sysbench初始化1张2000万行的表;
2 通过sysbench执行OLTP场景(read write)对数据库加压,采集间隔为1秒;
3 对sysbench的sbtest1表在线添加新列,观察是否执行成功,以及对tps,qps影响,记录执行alter语句时间:
dbaccess test -
> alter table sbtest1 add (new_column int);
4 对sysbench的sbtest1表在线删除新列,观察是否执行成功,以及对tps,qps影响,记录执行alter语句时间:
dbaccess test -
> alter table sbtest1 drop new_column;
需要获取并分析GBase8s ESQL/C程序与数据库服务器之间交互的信息
这个时候就可以设定环境变量SQLIDEBUG, 例如:
export SQLIDEBUG=2:/tmp/sqlidebug_20220120
其中,2是常量, “:” 冒号后边的生成的文件前缀名称。
设定完毕后,执行esql程序,例如编译执行CSDK中的demo/esqlc/demo1ec
demo1ec中包含下面的SQL语句:
编译demo1ec, 在demo/esqlc目录下执行make demo1
编译完毕后,执行/demo1
检查/tmp目录下生成的文件:
通过执行sqliprint命令,参数为/tmp目录下刚刚生成的文件
就可以查看ESQL/C程序与数据库服务器之间交互信息了,以下是发送的SQL语句信息节选:
上图中包含客户端向服务器发送的信息:
C->S 中的C是指客户端, S是指服务器端, ->是方向
C->S就是客户端向服务器端发送指令
SQ_COMMAND,表明发送的是SQL语句
CMD是具体的SQL语句
SQ_NDESCRIBE,表明客户端需要服务器端返回SQL语句的描述信息
SQ_EOT,表明命令结束
服务器向客户端发送的信息:
S->C: 表明是服务器端向客户端发送的信息
SQ_DESCRIBE: 与客户端的SQ_NDESCRIBE向对应,是服务器端向客户端返回的SQL语句描述信息, 描述信息中包含
SQL语句的类型 stmt_type
SQL语句返回的各个列的信息,如列名称,列类型,列长度等等
1、使用sysdate函数来获取当前时间,执行语句:select sysdate from dual即可。
2、使用sysdate()来获取当前时间,执行语句:select sysdate(),一定注意加上括号。
3、对于Gbase数据库,其与Mysql数据库在获取当前时间上相同,执行语句:select sysdate()。
4、对于sysbase数据库,其获取当前时间的函数是:select getdate()。
4、DB2数据库略有不同,在获取当前时间上,使用如下的查询sql:SELECT current timestamp FROM sysibmsysdummy1。
5、通常,我们在获取当前时间后,还想获得当前时间往前或者往后推一段时间的日期,对于DB2数据库,当前时间往前推一天: select sysdate-1 from dual。
以上就是关于如何验证GBase8s数据库支持对单个大表进行在线DDL全部的内容,包括:如何验证GBase8s数据库支持对单个大表进行在线DDL、GBase 8s里如何获取并显示ESQLC程序发送的SQL语句、DB2数据库如何获取当前系统时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)