我们正在设计对当前系统(C++\CLI 和 C#)的更新。 该系统将从约 10K 台设备(在不久的将来)收集少量(约 1Mb)数据。目前,它们用于将设备数据保存在 CSV(表格)中,并将所有这些存储在广泛的文件夹结构中。
数据只被插入(创建/追加到一个文件,创建文件夹)从不更新/删除。 数据处理是通过将许多 CSV 文件读取到外部程序(如 Matlab)来完成的。主要用于统计分析。
有一个选项可以开始将此数据保存到 MS-SQL 数据库中。 处理时间(将 CSV 文件读取到外部程序)可能长达几分钟。
- 我们应该如何选择使用哪种方法?
- 其中一种方法是否比另一种方法占用更多存储空间?
- 大致而言,从数据库读取原始数据什么时候比读取 CSV 数据更快? (10 个文件,100 个文件?...)
非常感谢您的回答,欢迎提出利弊。
感谢您的宝贵时间。
最佳答案
好吧,如果您使用一个 CSV 中的数据来获取另一个 CSV 中的数据,我猜 SQL Server 会比您想出的任何方法都快。我怀疑 SQL Server 在大多数情况下会更快,但我不能肯定地说。 Microsoft 投入了大量资源来制作一个 DBMS,它完全可以满足您的要求。
根据您的描述,听起来您几乎已经创建了自己的基于表数据和文件夹结构的 DBMS。我怀疑,如果您转而使用 SQL Server,您可能会发现在许多方面,事情变得更快、更容易。
可能的优点:
- 访问速度更快
- 更易于管理
- 如果需要,更容易扩展
- 更容易实现数据完整性
- 更容易设计更复杂的关系
可能的缺点:
- 您必须重写现有代码才能使用 SQL Server 而不是当前系统
- 您可能需要为 SQL Server 付费,您必须检查是否可以使用 Express
祝你好运!
关于c# - SQL 数据库 VS。多个平面文件(数以千计的小型 CSV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11143724/