TSL_Flush 函数将数据清空到磁盘。
TSL_Flush( handle lvarchar), container integer DEFAULT NULL), writeflag integer DEFAULT 1) returns integer
作为装入器程序的一部分,使用 TSL_Flush 函数将时间系列数据写入磁盘。必须在由 TSL_Init 函数所初始化装入器会话的上下文中的事务内运行 TSL_Flush 函数。TSL_Flush 函数插入数据的方式与 PutElem 函数相同。 不规则的时间系列允许有重复元素。
如果包含 TSOPEN_REDUCED_LOG 标志,那么必须在只能包含使用 TSOPEN_REDUCED_LOG 标志的其他函数的事务中运行 TSL_Flush 函数。只有在该事务落实之后,脏读取才可看到保存的元素。
运行 TSL_Flush 函数以保存由 TSL_Put、TSL_PutSQL 或 TSL_PutRow 函数装入的数据。在装入最多 65536 条记录后,必须将数据保存到磁盘。
一个整数,指示函数的状态:
以下语句将表 ts_data 和 TimeSeries 列 raw_reads 的数据保存到磁盘:
EXECUTE FUNCTION TSL_Flush('ts_data|raw_reads');
以下语句创建用户定义的函数,以在装入了 65536 条记录后自动运行 TSL_Flush 函数:
CREATE FUNCTION IF NOT EXISTS flush_status(val int) RETURNS int as nbcontainers, int as nbvalues DEFINE v1, v2 integer; LET v1 = val / 65536; LET v2 = mod(val, 65536); RETURN v1, v2; END FUNCTION;
以下语句根据需要自动运行 TSL_Flush 函数:
EXECUTE FUNCTION flush_status(TSL_Flush('ts_data|reads'));
以下语句将数据保存到磁盘,但减少了日志记录:
BEGIN WORK EXECUTE FUNCTION TSL_Flush('ts_data|raw_reads', 257); COMMIT WORK