编辑:我更改了名称,因为有一个类似的问题如何修复添加大型查询时 SpreadSheet 添加行函数崩溃的问题?那里描述了我的问题,所以我更简洁地进行了分述...问题是我的查询结果的电子表格添加行以我认为适中的大小(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)#">