我的应用程序中有一个搜索页面,可以根据两个日期搜索数据。用户还可以将数据导出到excel中。我使用普通的asp.net网格视图来显示数据。在导出到excel时,我使用OPENROWSET方法从sqlserver将数据插入到excel中(这有时抛出链接服务器null错误,在各个技术站点中给出了所有建议,但有时仍会出错)。
当用户将一年的数据导出到excel时,即使查询更快地返回数据,页面也需要至少20分钟导出,使用openrowset写入excel会花费更多时间。 1年的数据大约是2百万条记录,之前我使用c#代码将数据写入excel,这也花费了更多的时间。一年数据的Excel文件大小超过200 MB。
批量数据excel导出是否有更好的方法?
答案 0 :(得分:0)
SSIS适合导出大量数据。
答案 1 :(得分:0)
让SQL Server为您创建一个SSIS包,SSIS包将比代码快得多。为此:
1. In SQL Server Management Studio Right Click on the target database and click on Tasks in the pop-up menu
2) Select Import Data
3) On Data Source select Microsoft Excel and browse to where the excel spreadsheet will be.
继续选择并确保保存生成的包。
该包可以作为SQL Server作业运行,也可以使用dtexec(SQL Server util)命令从命令行运行。
SSIS包将非常快速地处理2000000行(在我的机器上它每秒读取10000行 - 结果会有所不同)。