如何使用C API为多个环境配置共享缓存?就像Java版一样。 http://docs.oracle.com/cd/E17277_02/html/GettingStartedGuide/env.html#multienvsharedcache
我想打开大量数据库,至少100,000个。但随着打开的数据库数量的增加,db-> open操作变得非常慢。它几乎花费2小时到100,000个数据库。 所以我尝试将这些数据库分发到多个环境(例如,5个环境)。为了提高内存使用效率,我想在envs之间共享缓存。
答案 0 :(得分:0)
我很确定你不能用C API做到这一点。但是,请考虑一些替代解决方案:
由于您的系统正在交换,因此打开所有这些数据库可能需要很长时间。但即使是每个环境1MB的缓存也需要100GiB的RAM。您可以在每个环境中使用96KiB或更小的缓存,小于10GiB。试试16KiB!
这似乎不会破坏性能。您的操作系统在缓存磁盘上的数据方面做得非常好。
如果您可以在同一环境中打开所有数据库,那就更好了。