ArcGIS Server Java ADF 案例教程 42
来源:互联网 发布:网络拓扑的分层结构 编辑:程序博客网 时间:2024/05/21 22:29
二 使用Utility Objects提高查询性能【案例】
这是我的同事使用Utility Objects解决某个用户的一个实际问题。这个用户通过调用AO进行空间查询,然后在此基础上进行分页,分页的时候遍历该页所有的IFeature,提取属性信息,构造成自己的结果返回——结果,遇到了严重的性能问题,在上万条记录中查询一般两三分钟才可以出结果,这在一个国家级项目中是难以忍受的。
经过添加日志分析,发现AO查询的速度非常快,问题就是出在遍历IFeature这个操作上,是不停地进行跨进程调用产生的。就在这个时候9.3.1正式发布了,Utility Objects有如救星般地降临了!
由于在上一小节关于怎么定义Utility Object已经讲得比较清楚,这里就不在啰嗦怎么封装接口和实现类了。下面是封装起来的功能代码,主要就是遍历分页要素并提取有用的信息,当然,原先这部分代码是在Web层执行的。
IFeature feature = featureCursor.nextFeature();
int featureCount = 0;
while (feature != null)
{
if (featureCount >= first + pageSize)
{
break;
}
if (featureCount >= first)
{
result.add(ServiceUtil.feature2Einfo(feature));
}
featureCount++;
feature = featureCursor.nextFeature();
}
经过这样的处理,性能有了极大的提升,一个简单的测试可以说明情况:这里做了一个半径1000公里的空间查询,返回结果总数为30437条。
分页起始记录
分页记录数
优化前(s)
优化后(s)
0
500
179.406
5.203
如果你有细粒度的操作,又遇到了性能问题,现在是不是很心动?
- ArcGIS Server Java ADF 案例教程 42
- ArcGIS Server Java ADF 案例教程 28
- ArcGIS Server Java ADF 案例教程 41
- ArcGIS Server Java ADF 案例教程 40
- ArcGIS Server Java ADF 案例教程 43
- ArcGIS Server Java ADF 案例教程 29
- ArcGIS Server Java ADF 案例教程 31
- ArcGIS Server Java ADF 案例教程 30
- ArcGIS Server Java ADF 案例教程 32
- ArcGIS Server Java ADF 案例教程 33
- ArcGIS Server Java ADF 案例教程 34
- ArcGIS Server Java ADF 案例教程 35
- ArcGIS Server Java ADF 案例教程 36
- ArcGIS Server Java ADF 案例教程 37
- ArcGIS Server Java ADF 案例教程 38
- ArcGIS Server Java ADF 案例教程 39
- ArcGIS Server Java ADF 案例教程 28
- ArcGIS Server Java ADF 案例教程 10
- 应聘穿衣服
- Balsamiq Mockups – 产品原型设计工具
- some problems
- 使用Google API进行翻译 支持大数据量的文字翻译
- ArcGIS Server Java ADF 案例教程 v9.3.1 PDF 版本
- ArcGIS Server Java ADF 案例教程 42
- ArcGIS Server Java ADF 案例教程 41
- ArcGIS Server Java ADF 案例教程 40
- ArcGIS Server Java ADF 案例教程 43
- ArcSDE vs. Oracle Spatial 1
- ArcSDE vs. Oracle Spatial 2
- ArcSDE vs. Oracle Spatial 3
- ArcSDE vs. Oracle Spatial 5
- ArcSDE vs. Oracle Spatial 6