2012-05-17 125 views
1

我的应用程序当前实现了一个FileSystemWatcher对象来监视用于创建文件(Input.xml)的目录(C:\ Incoming)。读取文件的最快方法

我正在使用Streamreader对象将文件读入我的应用程序,但是我担心性能会考虑到数据将用于在SQL Server数据库中执行操作。

什么是将文件读入内存(或者我已经在使用它)的最快方法?

+0

什么是文件的大小范围?你用什么确切的代码来阅读这些文件? –

+2

您正在与系统的最慢部分(物理磁盘)进行交互。真的没有理由去追求表现。如果您*需要*速度更快,则可以考虑将RAM磁盘或SSD用于输入文件夹。 – tzerb

+1

SQL-Server扮演什么角色? _“,但考虑到数据将用于在SQL Server数据库中执行操作,我担心性能问题。”_请注意,您可以**直接从文件大容量导入到sql-server中。 http://msdn.microsoft.com/en-us/library/ms188365.aspx –

回答

1

您对任务使用标准方法。

如果您需要将数据(即大数据)加载到数据库中,则瓶颈将位于您的代码和数据库之间,除非您使用BULK INSERT技术,而不是逐行插入行。这些细节取决于特定的数据库服务器。 但是,如果文件相对较小,在这种情况下负载将更加均匀分布,这并不是问题。即使这样,我也不会太在意磁盘访问的速度。

在开始阅读文件之前,请确保文件完整。例如,尝试首先打开专门阅读。如果可以通过重命名操作访问文件,而不是创建操作,那么它的确有点帮助,特别是当您期望有许多文件到达时,因为您的服务器端不必等待文件完全等待书面。这基本上意味着该文件应该首先用您没有看到的文件名写入。

相关问题