我有一个用于生成报告的xquery,它有时会在地图中保存大约500K的uris,并检查它们在数据库中的存在(使用cts:document-query的cts:search),然后返回差异。然而,如果我们使用并发请求命中相同的E节点,则响应时间会变慢。
maps可以消耗的内存大小是否有上限?在任何情况下,映射都可以交换到磁盘吗?
发布于 2012-05-03 14:09:05
您可以将地图作为xml存储在数据库本身中,但您仍然需要将其加载到内存中才能使用。您也可以将它们存储为服务器字段,但仍需要将其加载到内存中。但是,如果构建包含500k条目的地图需要相当长的时间,那么这样做可能是值得的。另一方面,您将如何跟踪地图是否最新?
发布于 2012-05-02 22:26:23
您可以通过管理服务器查看每个林使用了多少内存。转到森林,单击status选项卡,然后向下滚动到底部。“内存中大小”是映射文件大小的总和。您还可以在XQuery程序中使用xdmp:forest-status收集此信息。
内存消耗受操作系统的地址空间及其虚拟内存限制(可用交换空间)的限制。如果服务器内存消耗超过可用物理内存,操作系统会将页面交换到磁盘。这可能会对性能产生严重影响。因此,请监视操作系统交换利用率,以确定这是否可能是导致速度减慢的原因。
https://stackoverflow.com/questions/10404308
复制相似问题