返回首页

gbase数据、南大通用产品文档:GBase8sdtcurrent() 函数

更新日期:2024年09月11日

dtcurrent() 函数将当前的日期和时间赋给 datetime 变量。
语法
void dtcurrent(d)
dtime_t *d;
d
指向初始化的 datetime 主变量的指针。

用法
当将变量限定符设置为零(或任何无效的限定符)时,dtcurrent() 函数以 year to
fraction(3) 限定符来初始化它。

当该变量包含有效的限定符时,dtcurrent() 函数扩展当前的日期和时间来与该限定符
保持一致。

示例调用
下列语句将主变量 timewarp 设置为当前的日期:
EXEC SQL BEGIN DECLARE SECTION;
datetime year to day timewarp;
EXEC SQL END DECLARE SECTION;
dtcurrent(&timewarp);

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 674 -

下列语句将变量 now 设置为当前的时间,最接近于毫秒:
now.dt_qual = TU_DTENCODE(TU_HOUR,TU_F3);
dtcurrent(&now);
示例

demo 目录在 dtcurrent.ec 文件中包含此样例程序。
/*
* dtcurrent.ec *

The following program obtains the current date from the system, converts it to ASCII and
prints it.
*/

#include

EXEC SQL include datetime;

main()
{
mint x;
char out_str[20];

EXEC SQL BEGIN DECLARE SECTION;
datetime year to hour dt1;
EXEC SQL END DECLARE SECTION;

printf("DTCURRENT Sample ESQL Program running.\n\n");

/* Get today's date */
dtcurrent(&dt1);

/* Convert to ASCII for displaying */

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 675 -
dttoasc(&dt1, out_str);
printf("\tToday's datetime (year to minute) value is %s\n", out_str);

printf("\nDTCURRENT Sample Program over.\n\n");
}


输出

DTCURRENT Sample ESQL Program running.
Today's datetime (year to minute) value is 2007-09-16 14:49
DTCURRENT Sample Program over.

_gbase_sis_ctq_threads
用于insert select,load 接收端数据处理的线程数,缺省值未0,使用CPU 核数,
当该线程数不够用时,会创建临时线程协助处理,可以使用show engine express
status 查看各个节点间的连接和session 情况,以及发送和接收任务的情况。

GBase 8a MPP Cluster 最佳实践
4 参数调优
文档版本(2022-02-11)
南大通用数据技术股份有限公司
30
_gbase_sis_ctq_threads 参数用于指定CTQ 的个数(CommanTaskQueue 的简
写,待执行的命令队列),一个CTQ 对应一个任务执行器(Executor),即该参
数可理解为Executor 个数。参数默认取值为CPU 核数的2 倍。建议配置为512。
在大规模集群并发场景下,CTQ 数不足会造成没有充足的任务执行器进行SQL 提
交等操作,需要反复进行CTQ 数的判断和生成临时的执行器,两次判断之间间隔
60 秒,从而出现性能问题。
_gbase_rep_receive_buffer_size
用于insert 和load 在节点间传输数据使用,表示某个节点与其它所有节点的连接
中,最大等待处理的数据大小,单位为M。
_gbase_gns_queue_size
表示每个发送端session 的消息队列长度,满了之后会等待并重试。默认取值为
4096,在出现GNS 数据发送性能异常时,可调大该参数。

使用本功能,您可以在SQL 编辑器中对调用存储过程时产生的错误在存储过程
定义上进行定位。
在SQL 编辑器中,如果调用存储过程时出现错误,您可以同时按下“Ctrl”键
和鼠标左键来使用查看存储过程定义功能。如下图所示:

GBase 8a MPP Cluster 管理工具手册

- 184 -

南大通用数据技术股份有限公司

图 8-41 调用存储过程错误定位-按住Ctrl+鼠标左键

在打开的创建存储过程的脚本中,高亮显示错误语句,如下图所示:



GBase 8a MPP Cluster 管理工具手册
南大通用数据技术股份有限公司

- 185 -

图 8-42 调用存储过程错误定位信息