首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整Ignite缓存的SQL查询

调整Ignite缓存的SQL查询
EN

Stack Overflow用户
提问于 2021-11-29 19:48:51
回答 1查看 61关注 0票数 0

我已经为我的缓存启用了SQL支持,并且在大型数据集上运行下面的查询。我不断收到警告信息-

警告:查询执行太长了 [duration=3625ms,type=MAP,distributedJoin=false,enforceJoinOrder=false,lazy=false,node=TcpDiscoveryNode 200,node=TcpDiscoveryNode] [id=e70cc42c-fae6-420d-87f1-8102e386b27a,consistentId=10.105.143.70,addrs=ArrayList 0:0:0:0:0:0:0:0:0:0:0:0: 0:0:0:0:0:0:0:1,10.105.143.70,127.0.0.1,sockAddrs=HashSet /10.105.143.70:47500,/0:0:0:0:0:0:0:1:47500,/127.0.0.1:47500,discPort=47500,order=1,intOrder=1,/127.0.0.1:47500,/127.0.0.1:47500,discPort=47500,order=1,intOrder=1ver=2.10.0#20210310-sha1:bc24f6ba,isClient=false],reqId=3,segment=0]

以下是我的疑问-

代码语言:javascript
复制
try (QueryCursor<List<?>> cur = cache2.query(new SqlFieldsQuery("select _key from table"))) {
    for (List<?> r : cur) {
        Long key = (Long)r.get(0);
    }
}

有时,低至200条记录需要50秒的时间(限制为200)。

有什么方法可以对此进行调优以使查询快速完成?

EN

回答 1

Stack Overflow用户

发布于 2021-11-30 11:19:50

尝试在您的SqlFieldsQuery上设置惰性模式:

代码语言:javascript
复制
try (QueryCursor<List<?>> cur = cache2.query(new SqlFieldsQuery("select _key from table").setLazy(true))) {
for (List<?> r : cur) {
    Long key = (Long)r.get(0);
}

}

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

https://stackoverflow.com/questions/70160514

复制
相关文章

相似问题

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