SpreadsheetAddRows在中等大小查询时失败

编辑:我更改了名称,因为有类似的SO问题如何在添加大型查询时修复SpreadSheetAddRows函数崩溃? 在那里描述我的问题,所以我更简洁地删减…问题是我的查询结果的电子表格地址炸弹整个服务器在我认为适中的大小(1600行,27列),但听起来比他的18,000行少得多

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

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

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

我甚至不确定如何诊断这个

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

         

我的答案在于coldfusion和一个简单的事实:不要使用SpreadsheetAddRows或任何相关的函数,如SpreadsheetFormatRows

我的解决方案是执行查询,创建一个xls文件,使用标签cfspreadsheet写入新创建的xls文件,然后提供给浏览器,在服务后删除

使用SpreadsheetAddRows,运行时从1000多行崩溃服务器,700行上5 +分钟使用上述方法1-1.5秒

如果你对更多的代码感兴趣,我可以只提供评论,我正在使用冷箱框架所以不认为具体性将有助于新的工作流程