在 kdbb 中重放 tplog

Replay tplog in kdbb

我试图在 kdb 中重播 tplog。数据大概1gb,可是玩了一整天还是玩不完

其中一个表有两个键,都是string。我不确定这是否是它需要永远的原因。我还使用 upsert 而不是 insert。我应该更改什么以使其重播更快?

我觉得是改upd功能。所以当加载到内存时,这两列首先变为 symbol

正如评论中所讨论的那样,如果使用键控 table 和更新插入的目的是让每个键都有一个唯一的行,那么它可能更有效(当涉及到日志重放时)从一个未键控的 table 开始并设置为 insert 并且当重播完成时然后根据键对 table 进行分组,例如

`keyCol1`keyCol2 xkey select from replayedTable where i=(last;i) fby ([]keyCol1;keyCol2)

请注意,insert 不能与键控 table 一起使用,因为当键已存在于 table 中时,它不允许插入。

键控 table 上的原始 upsert 速度慢的原因可能是由于键的数量以及在每次更新插入时查找键列表(特别是字符串)的效率低下。不过这只是猜测