如何卸载kdb分区数据库?

如何卸载kdb分区数据库?,kdb,Kdb,我用\l命令加载(映射)了一个分区数据库。如何取消映射数据库?由于许多原因,这可能很有用,例如加载具有相同名称的不同db或释放一些系统内存。您可以对执行Q.gc[]调用,但没有执行此操作的命令。您可以手动删除映射数据库时创建的所有变量。因此,删除sym、date(如果您的数据库包含一个日期分区表)和所有加载的表 / delete sym, date, quote and trade from the default namespace delete sym, date, quote, trade

我用\l命令加载(映射)了一个分区数据库。如何取消映射数据库?由于许多原因,这可能很有用,例如加载具有相同名称的不同db或释放一些系统内存。

您可以对

执行
Q.gc[]
调用,但没有执行此操作的命令。您可以手动删除映射数据库时创建的所有变量。因此,删除sym、date(如果您的数据库包含一个日期分区表)和所有加载的表

/ delete sym, date, quote and trade from the default namespace
delete sym, date, quote, trade from `.

/ or if you want to delete everything in the default namespace
delete from `.

完成此操作后,您可以调用.Q.gc[]-将内存返回操作系统。不太好,但我认为这是唯一的方法。

\l不会显著增加内存使用量。消耗内存的是您创建的变量和运行的计算。 正如mnestor所说

从“”中删除。 .Q.gc[]

应该可以解决名称冲突和内存管理的问题。 为了避免删除可能需要的内容,只需将其移动到另一个名称空间。
例如,n.somethinguseful

我在Q提示符下没有任何有效的do_unmap或do_munmap命令。我不认为取消映射数据库,它只是回收被删除变量释放的内存。有关内存管理的提示,请参阅。我还没有找到一个更好的方法来满足您的需求。关闭,但没有真正的答案。您知道在删除或添加磁盘上的日期目录后是否必须重新加载数据库吗?在向分区数据库添加新日期后,我似乎遇到了查询问题。是的,您应该重新加载。要仅从全局上下文中删除所有分区表,可以使用
![`.();0b;.Q.pt]