使用 .NET 3.5 框架构建的应用程序从 SQL 数据库中将 100 万行和 500 列数据导出到 excel

EXPORT 1million rows with 500 column Data into excel from SQL database from application buil using .NET 3.5 framework

Excel 报告应支持 100 万行和 800 列。应用程序必须以两种模式生成 excel 1.online,其中 select 网格视图上的实体 excel 必须生成报告。 2.offline,用户可以 select 多个实体,使用 UI 上的按钮可以触发它生成 excel 并可以通过邮件接收 excel。

目前应用支持上述功能,但导出速度很慢。应用和数据库在同一台服务器上。牢记这一点,我们必须设计一个框架,即使应用程序上的数据增加 10 倍,它也会很快,性能问题最少。

SSIS 是否可以达到目的,或者如果有任何其他建议,请提出建议?

你没有说 UI 是什么,但既然你提到了 "online" 我假设它是一个浏览器。因此,最快的方法是查询 SQL 服务器,提取数据集,并使用文档化的 OpenDocument XML 生成 XLSX 文件作为 MVC [=13] 返回的响应流的一部分=] API。这产生最少的数据处理,并在 Web 服务器上保留文本处理。

100万条记录肯定要花一些时间,在并发环境下这不太好。最好有面向服务的架构,或者只是异步执行你的代码来防止这种挂起。 导出处理(例如在服务中)应该 运行 在后台线程中处理负载。

完成后如您所述生成并发送邮件。 或者保存在应用程序临时目录中并使用 SignalR(或者只是将服务器与 Ajax 合并)来检查服务中的进程是否已完成。如果是,重定向客户端下载文件。