Tsql 试图通过一个非常大的调用阻止多个数据库调用

Tsql 试图通过一个非常大的调用阻止多个数据库调用,tsql,asp-classic,Tsql,Asp Classic,所以我们运行一个下行报告。它收集登录者下线中的所有人。客户机的一些人运行此程序时没有问题,因为它返回的记录少于100条 然而,有些客户机返回4000-6000行,这大约是8MB的信息。实际上,我不得不提高开发机器的缓冲区限制来处理这个大请求 存储这一大块数据并防止其连续运行多次的最佳方法有哪些 它能储存在饼干里吗? 会话是不可能的,因为这会消耗服务器上的大量内存 在这一点上,我对任何事情都持开放态度,试图更好地将旧流程简化为更快、更高效的流程 现在要做的是加载整个记录集,在记录集中循环,将数据构

所以我们运行一个下行报告。它收集登录者下线中的所有人。客户机的一些人运行此程序时没有问题,因为它返回的记录少于100条

然而,有些客户机返回4000-6000行,这大约是8MB的信息。实际上,我不得不提高开发机器的缓冲区限制来处理这个大请求

存储这一大块数据并防止其连续运行多次的最佳方法有哪些

它能储存在饼干里吗? 会话是不可能的,因为这会消耗服务器上的大量内存

在这一点上,我对任何事情都持开放态度,试图更好地将旧流程简化为更快、更高效的流程

现在要做的是加载整个记录集,在记录集中循环,将数据构建到返回值单元格中

将其转换为jquery/ajax调用会更好吗

唯一的主要要求是:

经典asp jquery/javascript
鉴于对问题的回答,T-SQL使用cookie似乎是不明智的


我建议使用ASP在Web服务器上创建一个文件,并将数据写入该文件。当用户请求报告时,您可以确定是否经过了“足够的时间”使其值得再次运行报告,或者缓存的版本是否足够。用户的登录详细信息可能用于命名文件或Session.SessionID,或者您可以在用户的会话中存储新的内容。使用他们的登录名的好处是,您的报表缓存可以比用户的会话存在更长的时间。

为什么不将报表更改为分页?阶段1:运行整个查询,但页面仅显示基于所选页面的正确行集。现在,您的响应缓冲区问题已修复。阶段2:使用Row_Number()将分页移动到查询中,现在您的数据库使用问题已经解决。第3阶段:为用户提供“显示到屏幕”(使用上文)或“导出到csv”选项,您很可能可以在其中导出所有数据,因为csv既美观又紧凑

进一步,查询页数,这将是
返回的记录/每页的项目
四舍五入。然后在客户端连接每个页面查询的结果。页面以通过查询提供的偏移量开始。现在,您在客户机上拥有了全部金额,而不会使缓冲区溢出。它可以根据界面和用户选项进行定制(每页显示x)。

以文件附件形式发送电子邮件?;)你知道有什么好的例子吗?我可以从你的头顶上看到吗?现在我将尝试在google上搜索一个好的。我这里有一个ASP.Net MVC示例: