2

我有一个用于生成报告的 xquery,它有时会在地图中保存大约 500K uris,并检查它们在数据库中是否存在(cts:searchwith cts:document-query)并返回差异。但是,如果我们用并发请求访问同一个 E 节点,响应时间会变慢。

内存大小映射可以消耗是否有上限?在任何情况下都可以将地图交换到磁盘吗?

4

2 回答 2

2

您可以将地图作为 xml 存储在数据库本身中,但您仍然需要将其加载到内存中才能使用它。您也可以将它们存储为服务器字段,但仍需要将其加载到内存中。不过,如果使用 500k 条目构建地图需要相当长的时间,那么这样做可能是值得的。另一方面,您将如何跟踪地图是最新的?

于 2012-05-03T06:09:04.940 回答
0

您可以通过管理服务器查看每个林使用的内存量。转到森林,单击状态选项卡,然后向下滚动到底部。“内存大小”是映射文件大小的总和。您还可以使用xdmp:forest-statusXQuery 程序收集这些信息。

内存消耗受操作系统地址空间及其虚拟内存限制(可用交换空间)的限制。如果服务器内存消耗超过可用物理内存,操作系统会将页面交换到磁盘。这会对性能产生严重影响。因此,请监控操作系统交换利用率,看看这是否可能是导致速度变慢的原因。

于 2012-05-02T14:26:23.040 回答