首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Saleforce SOQL查询-错误

Saleforce SOQL查询-错误
EN

Stack Overflow用户
提问于 2019-08-06 19:39:49
回答 1查看 171关注 0票数 1

我在一个批处理作业上遇到了问题,它有一个简单的SOQL查询,返回了很多记录。一百多万。查询本身不能根据SOQL最佳实践进一步优化。(至少,据我所知。我不是SF SOQL专家。)

问题是我.

代码语言:javascript
复制
Caused by: javax.ws.rs.ProcessingException: java.net.SocketTimeoutException: Read timed out

我尝试将泽西岛的读取超时值从30秒提高到60秒,但仍然超时。

关于如何处理这个问题,有什么建议吗?返回这么多数据的查询的readtimeout参数的建议值吗?

查询如下:

选择Id、field1、field2__c、field3__c、field3__c从Object__c中选择field2__c = true和(不像field2__c‘\u0025 like \u0025’)顺序由field4__c ASC命令

EN

回答 1

Stack Overflow用户

发布于 2019-08-07 06:00:25

没有具体的顺序..。

  • 2分钟后用Apex超时编写的批处理,因此可能在Java应用程序中设置相同的
  • 使用查询计划特性在开发人员控制台中运行查询(您可能需要在其中放置真正的%,而不是\u0025)。注意哪一部分有“成本”栏> 1。
  • 什么是字段类型?简单的复选框和文本还是一些复杂的公式?
  • 该文本是静态的还是变化的取决于您的应用程序需要什么?您会考虑过滤出代码中的字符串而不是SOQL吗?反直觉地返回比你真正需要的更多的记录,但是好吧,可能是一个选择。
  • 您会考虑使用整个逻辑或只使用字符串搜索然后使用要求SF索引公式创建一个公式字段吗?或者做另一个字段(另一个复选框?)使用“是的,它包含文本”信息,可能通过工作流设置值(本质上是为以后高效地查询数据做准备)。
  • 阅读关于瘦削的桌子的文章,看看它是否适合你(需要SF支持)
  • 你能对你的数据做一个分析快照(做一个报告,让SF保存结果到助手对象,查询那个对象)吗?即使它只包含对原始源的查找,所以您可以访问始终新鲜的值,这也会有所帮助。不过,可能是个仓库杀手
  • 您考虑过"大物体“和异步soql吗?
  • 我对此并不感到骄傲,但在过去,我在SF数据库上取得了一些成功。不是通过API,但如果我有一个夜间批处理作业的时间超时,我继续重新提交它,最后第三次-第五次,它设法开始。查询优化器中的内容,在底层Oracle数据库中创建游标,缓存部分结果.我不知道。
  • ORDER BY里有什么?日期字段?如果您需要先更新X之后的记录,那么也许复制API可以帮助您先获得ids。
  • 例如,使用LIMIT 200是否有意义?您使用的API是SOAP还是REST?可能是返回较小的块(SOAP:批次尺寸、REST:特殊报头)将帮助它更快地完成任务。
  • 当所有其他的失败(但请联系SF支持,确保你用尽所有的选项)可能重组整个事情。让SF推送数据给你时,它的变化,而不是拉。有“流API”(CometD实现,但这些被称为Bayeux协议)和“更改数据捕获”和“平台事件”,用于很好的事件总线驱动的体系结构决策,如果客户端处于故障状态,无法侦听,则可在3天前重放旧事件.但这是一个完全不同的话题。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57382928

复制
相关文章

相似问题

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