SQL数据库VS. 多个平面文件(数千个小CSV)

Ore*_*ren 5 c# database sql-server c++-cli flat-file

我们正在设计对当前系统(C++\CLI和C#)的更新.该系统将从~10K设备(在不久的将来)收集少量(~1Mb)数据量.目前,它们用于将设备数据保存在CSV(表格)中,并将所有这些数据存储在宽文件夹结构中.

仅插入数据(创建/附加到文件,创建文件夹)从不更新/删除.通过将许多CSV读取到外部程序(如Matlab)来完成数据处理.主要用于统计分析.

可以选择开始将此数据保存到MS-SQL数据库.处理时间(将CSV读取到外部程序)可能需要几分钟.

  • 我们该如何选择使用哪种方法?
  • 其中一种方法比另一种方法占用更多的存储空间吗?
  • 粗略地说,何时从数据库中读取原始数据变得比读取CSV更快?(10个文件,100个文件?...)

我很感激你的答案,欢迎利弊.

感谢您的时间.

Abe*_*ler 3

好吧,如果您使用一个 CSV 中的数据来获取另一个 CSV 中的数据,我猜 SQL Server 会比您想出的任何方法都要快。我怀疑 SQL Server 在大多数情况下会更快,但我不能肯定。Microsoft 已投入大量资源来开发 DBMS,它完全可以完成您想要做的事情。

根据您的描述,听起来您几乎已经基于表数据和文件夹结构创建了自己的 DBMS。我怀疑,如果您转而使用 SQL Server,您可能会发现许多领域的工作变得更快、更容易。

可能的优点:

  • 访问速度更快
  • 更容易管理
  • 如果您需要,更容易扩展
  • 更容易强制执行数据完整性
  • 更容易设计更复杂的关系

可能的缺点:

  • 您必须重写现有代码才能使用 SQL Server 而不是当前系统
  • 您可能需要为 SQL Server 付费,您必须检查是否可以使用 Express

祝你好运!