首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geoserver - PostGIS性能问题

Geoserver - PostGIS性能问题
EN

Stack Overflow用户
提问于 2012-07-23 15:31:04
回答 1查看 2.6K关注 0票数 4

我们在Geoserver实例和Postgres/PostGIS之间的交互中发现了一些奇怪的东西。

在将Geoserver的日志级别设置为包括开发人员调试之后,我设法捕获了从Geoserver WMS到PostGIS的单个请求。

事件的(缩短)序列及其时间戳:

代码语言:javascript
复制
12:31:22,658 - SELECT query for MSG is sent to Postgres
12:32:10,315 - Rendering for MSG layer starts
12:32:10,356 - DB Connection Closed
~ 48 seconds

足够有趣的是,当我直接从PgAdmin3执行相同的查询(MSG)时:

代码语言:javascript
复制
SELECT "frp_mw",encode(ST_AsBinary(ST_Force_2D("the_geom")),'base64') as "the_geom" FROM "public"."af_msg_abba_datetime_today" WHERE ("the_geom" && GeometryFromText('POLYGON ((-27.67968749408379 -46.92207325648429, -27.67968749408379 -6.186892358058866, 75.67968748740275 -6.186892358058866, 75.67968748740275 -46.92207325648429, -27.67968749408379 -46.92207325648429))', 4326) AND (("frp_mw" >= -1 AND "frp_mw" <= 150) OR ("frp_mw" >= 151 AND "frp_mw" <= 300) OR ("frp_mw" >= 301 AND "frp_mw" <= 600) OR ("frp_mw" >= 601 AND "frp_mw" <= 50000)));

我在380ms内得到了6515行。

如果从PgAdmin3查询,Ie Postgres能够在380ms内返回查询结果,但Geoserver需要大约48秒才能获得相同的结果集。

这是不是某种JDBC问题?

关于我们的设置的一些详细信息:

Master Postgres数据库与Geoserver位于不同的VM上,但我们复制到Geoserver VM (同一主机)上的从属Postgres集群。因此,Geoserver在其查询中引用了'localhost‘只读Postgres集群。

上面显示的380ms响应时间来自从Postgres集群,与Geoserver正在使用的集群相同。

全部基于Linux (Ubuntu 11.10)。Postgres 9.1 PostGIS 1.5地理服务器版本2.1.3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-23 23:02:11

GeoServer以1000个块为单位获取数据,呈现它们,获取下一个块,依此类推,以避免在有许多并发请求的情况下占用大量内存。因此,48不是加载数据的时候,而是加载和渲染数据的时候。单次加载数据速度更快,但无法控制内存占用。

此外,您是否在数据存储配置中使用预准备语句?

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

https://stackoverflow.com/questions/11608122

复制
相关文章

相似问题

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