【发布时间】:2017-08-04 16:28:18
【问题描述】:
我有一个用 C# 开发的 Windows 服务。此服务将 XML 文件中的数据导入 SQL Server 数据库中的不同表中。这些 XML 文件很大。一个 500 MB 大小的特定文件需要 1 个多小时才能导入到具有数百万行的表中。
我有一个用 ASP.NET MVC 开发的 web 应用程序,上面的数据库在这个应用程序的后端。此应用程序通过从该数据库的表中过滤相关记录来显示不同的报告。此应用程序还可以处理记录。
当我在 Windows 服务导入 XML 文件期间运行应用程序与数据库交互时,我的 Web 应用程序挂起,并且在很长一段时间后发生超时错误。
我在 Windows 服务的存储过程中使用简单的插入更新命令,这些存储过程中没有事务。
请提供任何解决方案以避免此问题。
【问题讨论】:
-
第一件事 - 一次处理大数据是个坏主意。我要做的第一件事就是重新设计系统以分块导入数据。
-
您应该考虑使用后台任务,这些任务在后台处理您的大导入并且不中断应用程序的主线程。
标签: c# sql sql-server model-view-controller