性能调整 Timescape 以获得活跃的仪器

performance tuning Timescape to get active instruments

我在 timescape

中有一个 QL+ 查询

DatabaseItems(database := 'Silver', Category := 'Bonds').Where(not(iserror(|isactive|)))(3 分钟)

我使用的架构在 BondItems 上有一个布尔字段,名为 IsActive。 我希望此查询 return 的顺序与查询

类似

DatabaseItems('Silver','Bonds')(6 秒)。

编写此查询以获得实际性能的更好方法是什么?

[时间景观]

  1. Timescape 的基础数据服务不是关系型 数据库。底层数据服务是基于对象的,高度 针对时间序列分析进行了优化。
  2. Timescape不支持添加 自定义索引。

虽然无法将自定义索引添加到数据结构中,但可以创建带有引用的索引对象。通过这种方式,可以在 indexes 类别中创建一个 indexes 的类别,可以创建一个对象,比如 ActiveBonds,其中包含债券列表的时间序列。随着债券被添加到活动列表或从活动列表中删除,时间序列中的新行将创建一个新的债券列表。债券列表需要是 Reference Items 的列表,而不是名称,这样您就可以直接访问引用并将它们作为对象直接查询,而不必进一步查找。

您要构建的查询是

DatabaseItem('silver','Acivebonds')
.|itemlist|.Data(0)
.Values(|mid price|('bbg_data').LastValue)

[时间风景]