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

2023-12-02

编辑:我更改了名称,因为有一个类似的问题如何修复添加大型查询时 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)#">

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

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

使用 SpreadsheetAddRows,运行时在超过 1000 行时服务器崩溃,在超过 700 行时运行时间超过 5 分钟 使用上述方法 1-1.5 秒

如果您对更多代码感兴趣,我可以提供评论,我正在使用冷盒框架,因此认为具体性不会对新工作流程有所帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpreadsheetAddRows 在中等大小的查询上失败 的相关文章

随机推荐

  • 在 C 中查找未使用的枚举成员

    查找未使用的枚举成员的最快方法是什么 逐一注释掉值是行不通的 因为我有近 700 名成员 并且想删除一些未使用的成员 我不知道有任何编译器警告 但你可以尝试splint静态分析工具 根据其文档 强调我的 Splint 检测常量 函数 参数
  • 我可以获得特定词典的完整 i18n 标签吗

    我面临 i18n 标签的问题 我的应用程序使用 Granite I18n get 函数在 js 前端读取一些 i18n 标签 整个字典下载为 libs cq i18n dict locale json 如 etc clientlibs fo
  • .forEach 与 Object.keys().forEach 在稀疏数组上的性能

    如果我错了请告诉我 array forEach callbackFunction 适用于稀疏数组 它执行callbackFunction不是针对零和数组长度之间的每个索引 而是仅针对实际的键in数组 而且 如果我错了请告诉我 这些键正是Ob
  • 如何将 Excel 文件导入 SQL Server? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我的 Excel 文件中有数据 实际上XLSX格式 因为现在是 2020 年 我的要求是将此数据导入 SQL Server 如下所示 特别的 用例是向表提供测试数据 或少量数据的
  • 如果从 IE 安全选项禁用字体下载,font-awesome 在 IE 11 中不起作用

    我使用 Font awesome min css 在 IE 11 和 chrome 中运行良好 但我的客户要求是使用很棒的字体 即使我们禁用了从 IE Internet 选项下载字体 Internet options gt Security
  • 使用现有连接表的一对多关联

    我正在将使用 MariaDB 的现有应用程序的后端转换为使用 Sails v0 10 0 rc7 并且我一直在试图弄清楚如何在给定底层架构结构的情况下获取填充到角色模型中的角色的所有权限我必须与 目前有三个表用于获取角色及其关联的权限 工作
  • 使用 jQuery.get 时可以指定相对 URL 吗?

    我正在尝试像这样进行 ajax 调用 get home myInfo function data 我从以下页面调用它 http localhost myapp home index 当我尝试拨打上述电话时 它会转到 http localho
  • 触发 valueChanged 事件后从 JTable 中删除行

    我正在使用 ListSelectionListener 来更新我的JTextField countryTxt 来自所选行 import java awt BorderLayout import java awt event ActionEv
  • 解组 Parcelable 时出现问题

    我有一些实现的类可分包其中一些类作为属性相互包含 我正在将课程整理成Parcel在活动之间传递它们 将它们编组到包裹工作正常 但是当我尝试解组它们时 出现以下错误 AndroidRuntime E Caused by android os
  • Subversion 管理的项目的 xcopy ASP.NET 部署

    我目前正在使用 Subversion 来管理我的 ASP NET 网站 我发现每当我将网站上传到服务器时 我都会复制大量隐藏的 svn 文件夹以及其中可能包含的任何内容 有人有任何建议来避免这种情况吗 我并不特别想要生产服务器上的那些隐藏的
  • Java Keystore.getKey() 缓慢,同时密钥存储大小增加

    我正在使用 java 密钥存储来存储和检索加密密钥 当我的密钥存储大小很小时 它的工作速度更快 但是 一旦我的密钥存储大小增加 密钥存储操作就会变慢 我正在linux平台上工作 Java版本Jdk 1 8 和 safenet 作为提供商 我
  • 在 onPause、onStop 和 onDestroy 方法中调用超类方法的正确顺序是什么?为什么?

    我刚刚浏览了 Android 开发人员网站 刷新了 Activity 生命周期 在每个代码示例中 超类方法旁边都有一条注释 上面写着 始终首先调用超类方法 虽然这在创建半周期 onCreate onStart 和 onResume 中有意义
  • 在 WPF 应用程序中禁用 Aero Peek

    我想在我的 WPF 应用程序中禁用 Aero Peek 当用户将鼠标放在 显示桌面 按钮上时 我的应用程序必须可见 我使用这个 PInvoke 签名 Flags public enum DwmWindowAttribute uint DWM
  • React 如何有条件地覆盖 Material-UI 中的 TextField 错误颜色?

    我在用着React Material UI库 我想有条件地覆盖 TextField 的错误颜色 当错误属于某种类型时 我需要将 helperText 边框 文本和所需标记颜色更改为黄色 像这样的东西 否则 我想为所有其他类型的错误保留默认颜
  • Android 从通话记录屏幕中获取条目

    我已经能够使用从互联网上获得的以下代码访问手机的通话记录屏幕 是否可以通过单击获取单个条目的条目详细信息 例如号码 通话时间等 Intent showCallLog new Intent showCallLog setAction Inte
  • 错误:打开失败:ENOENT(没有此类文件或目录)

    我试图创建一个文件来保存相机中的图片 结果发现我无法创建该文件 但我实在找不到错误所在 你能看一下并给我一些建议吗 private File createImageFile File imageFile null String stamp
  • 下载 Google App Engine 数据库

    在 Google App Engine 数据存储区中创建表 实体 后 我创建了 Web 应用程序并将其部署在 Google App Engine 中 我怀疑是否可以下载实体 数据库 启用remote api 将其添加到您的web xml
  • 通过Java修改XPath表达式?

    我有以下类型的 XPath 表达式 id test id and some other attribute some value 我想把它转换成 resourceId android id test id and some other at
  • 如何在 Java 中将字符串时间转换为 Long 毫秒

    我正在尝试使用下面的代码将时间字符串转换为毫秒 因为我会把时间用作倒计时器 问题是时间来自数据库并且是 varchar 类型 我尝试了这段代码 但它没有给我正确的输出 String timeDuration 10 00 for exampl
  • SpreadsheetAddRows 在中等大小的查询上失败

    编辑 我更改了名称 因为有一个类似的问题如何修复添加大型查询时 SpreadSheet 添加行函数崩溃的问题 那里描述了我的问题 所以我更简洁地进行了分述 问题是我的查询结果的电子表格添加行以我认为适中的大小 1600 行 27 列 轰炸了