KDB查询性能改进

时间:2017-11-23 04:39:08

标签: c# performance kdb

我有一个简单的表格,其中包含我用于库存算法回测的价格。

price_hist:([pxkey:`$()]price:`float$())
update `g#pxkey from `price_hist

pxkey是格式为“MSFT_5M_201710060945”的串联字符串,因此stock = MSFT,价格条间隔= 5分钟,datetime = 201710060945。我使用了连接字符串而不是单独的列,因为它很简单,而且我是KDB新手,我希望能够快速运行。

我有大约500万行,使用完全相同的数据,性能仅略高于MySql。关于如何改进这一点的任何想法(通过表结构,属性,查询,任何东西..)?仅供参考我正在使用带有qSharp库的C#并查询我正在使用这种返回字典的格式: -

price_hist`MSFT_5M_201710060945

1 个答案:

答案 0 :(得分:0)

创建数百万个生成的符号在kdb +中绝不是一个好主意。我建议使用键控表而不是字典:

bar5m:([sym:`$();time:`timestamp$()]price:`float$())

填充后,您应该可以按如下方式查询

bar5m[(`MSFT;2017.10.06D09:45);`price]

要提高效果,请确保该表格按sym,time排序,并将p属性设置为sym