首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以定制钻取执行计划?

有没有一种方法可以定制钻取执行计划?
EN

Stack Overflow用户
提问于 2017-12-07 00:31:41
回答 1查看 24关注 0票数 0

我们希望通过PostGIS存储插件使用Drill执行查询,查询为:

代码语言:javascript
复制
SELECT zone, count(primary_roads.id) as roads
FROM pg.test.zones, pg.test.primary_roads
WHERE ST_Crosses(geom_linestring, geom)
AND zone IN ('Astoria Park', 'Red Hook', 'Douglaston')
GROUP BY zone
ORDER BY roads desc;

将日志添加到Drill中,我们可以看到Drill实际做的是将查询分成两部分:

代码语言:javascript
复制
SELECT *
FROM "test"."primary_roads"

代码语言:javascript
复制
SELECT *
FROM "test"."zones"
WHERE "zone" = 'Astoria Park' OR "zone" = 'Red Hook' OR "zone" = 'Douglaston'

如您所见,它不包括ST_Crosses函数,也不包括GROUP BY和ORDER BY子句。

那么,有没有一种方法可以将整个查询传递给PostGIS并避免拆分呢?

EN

回答 1

Stack Overflow用户

发布于 2018-01-24 05:59:15

在内部,Drill的规划者认为这是运行查询的最佳方式,不幸的是,没有办法显式地告诉Drill不要这样做。为了使规划器的行为不同,并将ST_Crosses函数与group by和order by一起下推,我们必须进行一些代码更改。如果你想在Drill中看到这个优化,请联系邮件列表上的Drill团队。你可以找到所有的邮件列表信息here

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

https://stackoverflow.com/questions/47679129

复制
相关文章

相似问题

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