首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当试图计算大层的本机边界框时,Geoserver超时

当试图计算大层的本机边界框时,Geoserver超时
EN

Stack Overflow用户
提问于 2017-01-17 06:02:36
回答 1查看 699关注 0票数 1

我正在从事一个项目,该项目涉及将外部oracle数据库作为数据store连接起来。我正在尝试根据oraclestore中的db视图向Geoserver添加几个层。

很多层都很好:中的几个视图都很好,除了单击“计算从数据”来计算本地边界框坐标(minX、minY、maxX、maxY)时有相当大的延迟。背景任务似乎在2-10分钟后就完成了。这很好..。

问题:有一些非常大的视图在单击"Compute“后没有完成。进程似乎超时。我附上了显示这个问题的截图。即,旋转器不皂化,但边界坐标仍为空白。

以前有人遇到过这种情况吗?我试过增加Jetty http.timeout和threads.timeout,而不是骰子。

进度旋转器出现在右上角,表示正在进行计算,它将旋转大约15分钟,然后简单地消失,坐标框仍然是空白的。它只是在没有错误的情况下停止--我检查了日志文件。

这台服务器运行在一个带有大量内存的centos 7盒上。Geoserver本身运行的内存为3GB。

你有经历过吗?

此外,我还考虑根据从oracle视图导出的CSV手动计算这些边界框值,根据所有几何值计算。我可以使用像JTS这样的java包,有更好的方法吗?

Suite

任何帮助都很感激。

EN

回答 1

Stack Overflow用户

发布于 2017-01-17 08:51:16

简单的答案是,Oracle在以一般方式使用时会很糟糕,因为GeoServer设计用于处理许多数据库--它在数据库访问代码中不可能有(很多)空间加速技巧。一个好的数据库(例如PostGIS)一直都是快速的,只有在您使用基于本地知识的提示手动优化它时,Oracle才是快速的。您不会说您使用的是哪个版本的GeoServer,但是最新版本可能比旧版本要快。

要计算表的界限,可以使用以下方法向Oracle查询:

代码语言:javascript
复制
SELECT SDO_TUNE.EXTENT_OF('TABLE_NAME', 'SPATIAL_COLUMN');

代码语言:javascript
复制
select sdo_aggr_mbr(MY_GEOMETRY) from MY_TABLE;

这个questionGIS stackexchange site上讨论调优这些查询。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41690019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档