我有一个客户需要将行从大型Excel文件(72K行)导入到他们的SQL Server数据库中。该文件由系统的用户上传。当我们试图在用户上传的同时尝试上传和处理这些内容时,性能就成了问题。现在我们将它保存到磁盘中,然后管理员拿起它并将其分成2K行并逐个通过上传工具运行。有没有更简单的方法来实现这一点,而不会影响性能或超时?导入到SQL Server数据库的大型Excel文件
回答
如果我正确理解你的问题,你会得到一个大的电子表格,并需要将它上传到SQL Server数据库。我不确定为什么你的过程目前很慢,但我认为数据量本来就不会太慢。
根据您有哪些开发工具可用,应该可以在合理的时间内将其导入。
SSIS可以从Excel文件读取。您可以安排定期醒来的工作并检查新文件。如果它找到该文件,那么它使用数据流任务将其导入登台表中,然后可以使用SQL任务在其中运行一些处理。
如果您可以使用.Net,那么您可以编写一个应用程序,通过OLE自动化API读取数据并通过SQLBulkCopy将其加载到临时区域。您可以通过Excel COM API将整个范围读入变量数组。这不是超快的,但应该足够快,适合你的目的。
如果您不介意使用VBA,那么您可以编写一个类似的宏。但是,我不认为传统的ADO具有批量加载功能。为了做到这一点,您需要导出一个.CSV或类似于可从服务器上看到的驱动器,然后从该文件中导出
BULK INSERT
。您还必须为输出.CSV文件创建一个bcp控制文件。
从用户提供的电子表格中无头进口总是很麻烦,所以通过桌面应用程序执行它有很多好处。主要好处是有错误报告。一个无头的工作实际上只能发送一封包含一些状态信息的电子邮件。如果您有一个交互式应用程序,用户可以对该文件进行故障排除并进行多次尝试,直到它们正确。
我可能是错的,但是从您的描述来看,您听起来像是在应用程序的代码中进行处理(即上传文件并处理上载的代码然后处理导入,排序依据)
无论如何,我已经成功地导入了像使用SSIS那样的大型数据集。我还设置了一个电子表格作为链接服务器,但它对我来说总是感觉有点尴尬。
看看this article详细介绍了如何用几种不同的方法,即导入数据:
- SQL Server数据转换服务(DTS)
- 的Microsoft SQL Server 2005集成服务(SSIS)
- SQL Server链接服务器
- SQL Server分布式查询
- ActiveX数据对象(ADO)和Microsoft OLE DB提供程序SQL Server
- ADO和Microsoft OLE DB提供程序为Jet 4.0
这些中的任何一个可以连续运行吗?如果我们不断地将文件保存到磁盘上,我需要读取那些进入的文件。 – 2012-01-10 23:23:05
- 1. 导入文本文件到MS Excel或SQL Server CE数据库
- 2. 如何将大型数据从sql server导出到excel文件
- 3. 将大文本文件导入到SQL Server数据库中
- 4. 从Excel文件插入数据到SQL Server数据库
- 5. 从Excel/CSV导入数据到SQL Server
- 6. 从Excel导入数据到SQL Server
- 7. 从Excel导入数据到SQL Server
- 8. 从Excel导入数据到SQL Server表
- 9. 从excel导入数据到sql server
- 10. 将Excel数据导入到SQL Server
- 11. 导入Excel数据到SQL Server
- 12. 从Excel导入数据到SQL Server数据库使用Microsoft.ACE.OLEDB.12.0
- 13. 从Excel工作表导入数据到SQL Server数据库
- 14. 上传Excel表和数据导入到SQL Server数据库
- 15. SSIS包导入Excel文件到SQL Server
- 16. 将excel文件导入到sql server
- 17. 导入Excel文件到SQL Server 2008
- 18. 导入多个Excel文件到SQL Server
- 19. SQL Server Openrowset仅从大型Excel(.xls)文件导入2000行
- 20. 从Excel文件导入数据到SQL Server
- 21. 使用c将文本文件导入到SQL Server数据库#
- 22. 导入Excel到SQL数据库表
- 23. 将XML导入到SQL Server数据库
- 24. 将Excel文件导入到SQL Server中 - 数据类型有问题
- 25. 将大型Excel文件导入到SQL Server中的最佳方法
- 26. 从大型脚本导入SQL Server数据库
- 27. 如何将数据从Excel 2007 xlsx文件导入SQL Server 2000数据库?
- 28. 如何将数据从Sql Server CE数据库文件导入Excel?
- 29. 导入.sql文件到SQLite数据库
- 30. C#导入excel文件到sql数据库错误
对不起,我应该说的客户服务管理,不涉及开发管理。 – 2012-01-10 23:21:19