我有一个需要查询的大型(350 MB)CSV文件。我每天都将数据文件作为数据转储获取一次,因此我可以对这些数据进行日常处理。一旦我有了数据,我想以更频繁的间隔查询它。我想知道如何最好地做到这一点。
我在想我有两种选择。
与OleDbConnection
联系,然后使用OleDbDataAdapter
直接查询,就像这样
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + base.applicationRoot + ";" + "Extended Properties=\"text;HDR=Yes;FMT=CSVDelimited\"");
OleDbDataAdapter adapter = new OleDbDataAdapter(String.Format("select something from [{0}]", base.csvFileName), conn);
什么是更好的方法。或者,将CSV文件用作数据库(只读)的效率如何?
答案 0 :(得分:3)
我会将csv插入数据库以获得更强大的查询功能。 如果您使用的是SQL Server,则甚至可以使用标准的批量插入命令批量插入csv。
答案 1 :(得分:1)
如果是离线解决方案,您可以使用SQLite而不是Sql Server。与CSV相比,这将提供良好的性能,但每天构建一次的开销很大。