Jan*_*yka 9 kdb
我有一个KDB/Q数据库,每天大约有2M的记录消耗大约2G的内存.在一天结束时,它会运行一些报表,在表之间进行连接并将结果输出到磁盘上的文件中.在计算过程中,内存使用量增长到~15G.我的问题是,一旦此操作完成,内存永远不会被释放,直到DB重新启动它消耗所有15G的内存.
我想告诉KDB从内存中卸载一些表(虽然不要删除它们)但是我不想重新启动数据库,因为其他一些应用程序仍在连接它.
有没有办法告诉KDB从内存中卸载一些东西?
编辑:
如果有人发现它有趣我建议看看.Q.gc[]KDB 2.5+,看起来很有希望.
.Q.gc[]
Jan*_*yka 9
以下是我的研究总结:
Aar*_*ies 5
这可能很明显,但是除了检查q版本的垃圾回收模式之外,还请确保确实摆脱了正在使用内存的内存中数据。如果您可以删除整个表(例如,这是计算中涉及的临时表),只需将其从根名称空间中删除
delete table from`.
如果没有,您可以删除其所有行
delete from`table
归档时间:
14 年,4 月 前
查看次数:
5450 次
最近记录:
7 年,11 月 前