我们有一些测试生成的文件,每个文件有近60,000行数据。要求是借助这些文件中存在的数据计算参数数量。可以有两种处理数据的方法:
我试图找出与这两种方法相关的开销。由于数据库是为了处理这种情况,我担心数据库变大时可能会出现问题的开销。
它是否会影响表中的检索率,从而使计算速度变慢?因此,考虑到数据库大小,文件处理是一个更好的解决方案吗?数据库分区应该解决大型数据库的问题吗?
答案 0 :(得分:1)
您是否考虑过使用map-reduce(例如Hadoop下可能使用HBase)来执行这些任务?如果您正在寻找具有大数据量的高吞吐量,这是一种非常可扩展的方法。当然,并非所有问题都可以使用这种范例有效解决,我不知道你的计算细节。
答案 1 :(得分:0)
如果正确设置索引,则不会遇到性能问题。此外,没有什么可以阻止您将文件加载到表中并运行计算,然后将数据移动到存档表中或完全删除它。
答案 2 :(得分:0)
您可以直接从SQL
运行文本文件SELECT * FROM OPENROWSET('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=C:\;',
'SELECT * FROM [text.txt];')
或者正如您所提到的,您可以将数据数据加载到表中(使用SSIS,BCP,上面的查询...)。你没有提到数据库会变大是什么意思。表格的60k行并不是那么多(意味着它会表现良好)。