随着 Informix 新版本的不断推出,Informix TimeSeries 也在持续更新,在最近的几个版本中都有大量的新特性加入。下面重点介绍 Informix 12.1 版本中的TimeSeries 新特性。
以前的 Informix 时间序列在进行增量数据加载的操作时相对繁琐,因为缺少专门的增量加载工具,使用者在进行相关操作时必须使用虚表或者 PutElem 或 PutSet等函数来实现。效率较低。
Informix 自 11.7 版本开始提供了用于编写装入器程序的函数,并在 12.1版本中进一步对这类函数进行了完善,通过使用这类函数,用户可以编写专门的装入器程序,使用并行方式高效的进行数据的增量加载,并可以在应用程序中包含定制装入程序。Informix提供的装入器函数如下表所示
函数 功能
要编写一个装入器程序可以按照下面的步骤编写
通过运行 TSL_Init 函数,初始化全局上下文并打开会话。
在每个会话的上下文中,运行 TSL_Put 和 TSL_Flush 函数以装入并保存数据。
在每个会话的上下文中,通过运行 TSL_SessionClose 函数,关闭该会话。
通过运行 TSL_Shutdown 过程,除去全局上下文并关闭装入器。
下面通过一个示例演示如何编写一个装入器程序
装入器程序脚本
如果在单个事务中将时间系列元素装入到容器,可以通过指定更少的日志记录量来节省时间。缺省情况下,所插入的每个时间系列元素会生成两个日志记录:一个用于插入的元素,而另一个用于页面标题更新。但是,可以指定改为对每个事务记录页面标题更新。例如,可以在一个事务中插入一个计量表的一组日常计量表读数,并减少近一半的日志记录量。
在事务中运行带 TSOPEN_REDUCED_LOG (256) 标志的一个或多个 PutElem、PutElemNoDups、PutNthElem、InsElem、BulkLoad 或PutTimeSeries 函数,或者带 257 标志的 TSL_Flush 函数,而不使用其他函数或 SQL 语句。能够大幅提高时间序列数据的装入速度。下面以 TSL_Flush函数为例展示该参数的用法
使用 TSOPEN_REDUCED_LOG 参数的装入器程序脚本
在本例中应注意的是 TSL_Flush函数的参数包括表名和时间序列列名的组合、容器标识和日志记录方式三个参数,由于后两个参数值都可以使用默认值而无需特别标明,所以如果要指定第三个参数的值时必须同时对第二个参数也进行指定。
试验证明,使用减少日志记录的方式装入数据的方法比普通方法效率要提升 2 倍左右。
另外,对于虚表同样可以通过使用 TSCreateVirtualTab 创建带 TS_VTI_REDUCED_LOG (256) 标志的虚表,该标志位可以与 11.7xC6 中增加的标志位TS_VTI_ELEM_INSERT 共同使用,可进一步加快数据的插入速度,其用法如下所示
Informix 时间序列提供了大量的函数完成数据的导入,管理,查询和移除等操作,Informix 在新版本中也不断加入新的函数来提高数据操作的简便性。Informix12.1版本中新加入了函数 GetFirstElementStamp、GetLastElementStamp 和 TSContainerLock,进一步提高了操作的简便性
GetFirstElementStamp 和 GetLastElementStamp

该函数可用于得到时间序列中第一个(最后一个)元素的时间戳记,其函数原型如下所示
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-31715-2.html
抢来
一是日本经过明治维新全民造舰的浪潮
而不是人为故意或无意放进去的