这是我的应用程序的基本概要(连接到 SQLite DB):
它扫描一个目录并创建一个包含 8-15 个需要读取的不同平面文件的列表。
它识别平面文件并根据文件扩展名选择通用的准备好的语句。
然后它逐行读取平面文件,并将准备好的语句与已设置的字符串添加到批处理中。批处理每 1,000 条语句执行一次。一些有问题的文件有 200,000 行需要读取。
一旦所有文件都插入到数据库中(每种文件类型都有一个不同的表),程序会将每个表的特定列更新为一个公共值。
该程序为每种文件类型创建一个新文件,并将数据库中的信息提取到新文件中。
目前,在一个包含大约 9 个非常小的文件(少于 50 行)和一个非常大的文件(超过 200,000 行)的目录上运行大约需要 1.5 分钟。我希望能更快地得到这个。
先问几个问题:
我应该关闭并打开程序每个部分的数据库连接(加载、更新、提取)还是保持连接打开并将其传递给每个不同的方法。
我应该在处理每个文件后关闭准备好的语句吗?或者只是在每个文件之后清除参数并在方法结束时关闭它(基本上是在加载所有作业之后)?
我对任何其他关于我应该关注的事情的评论感兴趣,以最大限度地提高这个应用程序的性能。
谢谢。