Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ASP.Net从SQL Server导出大量数据_Asp.net_Sql_Sql Server 2008 - Fatal编程技术网

使用ASP.Net从SQL Server导出大量数据

使用ASP.Net从SQL Server导出大量数据,asp.net,sql,sql-server-2008,Asp.net,Sql,Sql Server 2008,在我工作的公司,我们正在构建一个数据仓库应用程序,它将是我们运行的许多查询的基于web的前端。[使用ASP.net] 其中一些查询将带来超过100万条记录(到年底可能会有大约200万条记录)- 大多数将是数千人,等等 以这样一种方式构建应用程序的好方法是什么:您可以浏览到所需的查询,将其导出,并生成所需数据的CSV文件- 我在考虑一个基于web的界面,它调用BCP生成一个文件,并向您显示报告创建的时间,以便下载,并在创建后24小时内过期- 有什么想法吗 Sas我前世设计了类似的东西。本质上是一个

在我工作的公司,我们正在构建一个数据仓库应用程序,它将是我们运行的许多查询的基于web的前端。[使用ASP.net]

其中一些查询将带来超过100万条记录(到年底可能会有大约200万条记录)-

大多数将是数千人,等等

以这样一种方式构建应用程序的好方法是什么:您可以浏览到所需的查询,将其导出,并生成所需数据的CSV文件-

我在考虑一个基于web的界面,它调用BCP生成一个文件,并向您显示报告创建的时间,以便下载,并在创建后24小时内过期-

有什么想法吗


Sas

我前世设计了类似的东西。本质上是一个C#命令行应用程序,可以对我们的报表服务器运行查询

一些要点:

  • 不管花多长时间,因为它在后台——当文件准备好时,它会显示在UI中,用户可以下载它。他们没有实时等待

  • 不管查询的效率有多低,这都是因为上面的一点,也因为报告是针对前一天的。我们从生产报告副本中运行它们,而不是针对生产,生产通过日志传送延迟

  • 我们没有对文件设置任何过期时间,因为用户可以在周五请求报告,并且在周一之前不会查看报告。我们宁愿将文件放在磁盘上,也不愿再次运行报告(文件服务器磁盘空间相对便宜)。我们允许他们在完成报告后删除报告,他们会自己删除,以防止UI中出现混乱

  • 由于对数据的各种需求,我们使用了C#和DataReader而不是批量导出方法。我们需要提供灵活性,以包括列标题或不包括列标题、引用数据或不引用数据、处理支持各种区域性的千个分隔符和小数点、应用不同的行尾(\r\n\n\r)、不同的扩展名、Unicode/非Unicode文件格式和不同的分隔符(逗号、制表符、管道等)。对于不同的客户,甚至对于不同的报告,也有不同的要求-一些客户希望在报告完成后立即发送电子邮件通知,另一些客户希望将报告的副本发送到FTP服务器,等等


您可能还没有考虑到很多要求,但我希望这能给您一个开始。

谢谢,这非常有帮助-