在迭代 FileNet 集合时,构建一些服务器端报表以使用简单的 Iterator 而不是 PageIterator 是很常见的情况,因为您不需要将文档“部分”发送给客户端。
SearchScope ss = new SearchScope(objectStore);
//what integer to choose?
int pageSize;
RepositoryRowSet rrc = ss.fetchRows(sql, pageSize, propertyFilter, true);
Iterator it = rrc.iterator();
while (it.hasNext()) {
RepositoryRow rr = (RepositoryRow) it.next();
//...
}
但是 CE API 内部仍然使用分页。所以我的问题是:在这种情况下选择什么页面大小?一方面,页面大小越大,到服务器的往返次数就越少。另一方面,我们不能将其放大太多,因为每个周期性请求可能变得太大和太慢,并且还可能导致性能下降。中庸之道在哪里?