好的,所以这个问题看起来很简单。好吧,它不仅仅是加载文件。
整个故事是这样的:出于某种原因,我们的客户向我们发送了只能被描述为关系数据库的内容,被压缩,压缩成单个 csv 文件(但分隔符是波浪号而不是逗号)。实际上,这有点可怕;相同的数据在整个文件中无限重复。因此,为了使这些数据恢复秩序,我将其加载到实际的关系数据库中。由于数据量很大,将其加载到数据库中可以更轻松地检查数据是否存在问题。它还使导出变得更加容易。
每条记录有 53 行,每次传输大约有 250,000 条记录。我想把它分成 6 个标准化表。我不确定是否要验证 C# 程序或我正在使用的 SQL Server 2016 LocalDb 实例中的数据。
我不是经验丰富的 DBA;我是一名 C# 程序员,对 SQL 有所涉猎。我对语法感到很舒服,但我想确保我这样做是正确的。
此外,一切都必须完全自动化。文件进来,C# 程序在收到文件时启动,并将其加载到数据库中。
让我解释一下布局。该文件有 53 个字段,每行包含一个报表明细行(他们的收费内容、项目收费的频率、该项目的总成本或贷项等)。问题是每一行都包含整个邮寄、付款人、居民、财产和汇款的信息。知道了这一点,让我解释一下我现在是如何做的:
这不是世界上最慢的事情,但它完全是在 RAM 中完成的。由于程序在当前状态下非常接近 RAM 耗尽,我们决定将数据加载到数据库中,而不是将其全部保存在本地 RAM 中。希望这可以为潜在的回答者提供更多信息。谢谢!