当前位置: 首页 > 面试题库 >

SpreadsheetAddRows在中等大小的查询上失败

荣轶
2023-03-14
问题内容

编辑:我更改了名称,因为存在类似的SO问题如何在添加大查询时解决SpreadSheetAddRows函数崩溃的问题?在那里描述了我的问题,所以我更简洁地表达了自己的看法……问题是电子表格Addrows,我的查询结果以我认为合适的大小(1600行,27列)轰炸了整个服务器,但听起来比他的18,000行少了很多

我正在使用通过Coldfusion 9.0.1 cfstoredproc访问的oracle存储过程,该存储过程在完成时会创建电子表格供用户下载

问题是结果集大于说的1200行返回500内部服务器错误,700行返回正常,所以我猜这是内存问题吗?

在标准Coldfusion外观中,我收到的唯一消息不是500内部服务器错误,是小写“超出gc开销限制”,并且在页面刷新中仅出现一次,这是指底层Java
JVM

我什至不知道如何去诊断

这是cfstoredproc和电子表格obj的结尾

 <!--- variables assigned correctly above --->
 <cfprocresult name="RC1"> 
 </cfstoredproc>

 <cfset sObj = spreadsheetNew("reconcile","yes")>
 <cfset SpreadsheetAddRow(sObj, "Column_1, ... , Column27")>

 <cfset SpreadsheetFormatRow(sObj, {bold=TRUE, alignment="center"}, 1)>

 <cfset spreadsheetAddRows(sObj, RC1)>
    <cfheader name="content-disposition" value="attachment; filename=report_#Dateformat(NOW(),"MMDDYYYY")#.xlsx">
 <cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" variable="#spreadsheetReadBinary(sObj)#">

问题答案:

我的答案与Coldfusion和一个简单的事实有关:请勿使用SpreadsheetAddRows或SpreadsheetFormatRows之类的任何相关函数

我对此的解决方案是执行查询,创建一个xls文件,使用标签cfspreadsheet写入新创建的xls文件,然后投放到浏览器,投放后删除

使用SpreadsheetAddRows,运行时从崩溃的服务器上移出1000+行,在700行上5分钟以上,使用1-1.5秒以上概述的方法

如果您对更多代码感兴趣,我只能提供注释,我使用的是Coldbox框架,因此认为特殊性不会对新工作流程有所帮助



 类似资料:
  • 如何从拥有数千个文档的Firestore集合中有效地获得整个查询大小? 在我的例子中,我通过几种不同的规则查询文档: 开始日期 结束日期 位置ID 关键字 我可以使用云函数进行与前面相同的查询,但没有限制,然后得到它的大小,但有没有更有效的方法做到这一点?查询大小可能是数千个文档,那么这样做是否存在性能问题?在这种情况下,帐单是如何工作的? 如果。我的查询是1500个文档,是否需要1500个读取操

  • 我不了解DynamoDb中查询/扫描限制的概念。根据文件: 单个查询操作最多可以检索1 MB的数据。在对结果应用任何FilterExpression之前,此限制适用。 假设我有10k个条目,每个条目250kb,所有条目都符合查询参数。 如果我运行一个简单的查询,我只得到4个项目?

  • 我有一个实体类,我有一个值作为薪水。工资的数据类型是bigdecimal。现在我想对这个实体执行一个查询,其中有两个值,从salary和toSalary。我希望所有的员工都有薪水 薪水以Bigdecaml表示,fromSalary和toSalary以Double表示。 我尝试了2种方法。 标准在哪里(薪水)。gte(新的BigDecimal(fromSalary))。lte(新的大十进制(toSa

  • 问题内容: 我正在对PostgreSQL数据库中的表运行查询。该数据库位于远程计算机上。该表具有约30个使用postgresql 分区功能的子表。 该查询将返回一个很大的结果集,大约有180万行。 在我的代码中,我使用spring jdbc支持,即方法JdbcTemplate.query,但未调用我的RowCallbackHandler。 我最好的猜测是postgresql jdbc驱动程序(我使

  • 问题内容: 我有这个json文件: 我使用以下Go代码搜索数据: 它会查找是否通过“板球”之类的相同字符串进行搜索,但是如果我搜索此“板球”之类的字符串,则不会找到它。 问题答案: 添加到您的RegEx。