gpt4 book ai didi

sql - VB.Net将大量数据写入SQLite-DB

转载 作者:行者123 更新时间:2023-12-03 17:53:01 24 4
gpt4 key购买 nike

我有大量的行(到目前为止从10.000到200.000,可能会增加),我想保存在SQLite数据库中,因为数据将仅在本地使用。
行由其中包含定界符的单个字符串组成。根据我从哪里提取数据,行将填充2到10个字段。
所以我每行有不同数量的字符串,并且需要一种可以容纳不同数量的方法。将始终为拉出的数据专门创建一个表。
我目前有一种实际上有效的方法,但是运行缓慢。

基本上,我根据必须传递的变量数量构造一个SQL命令字符串。我通过在变量周围包装一个简单的插入命令(在其中定义字段),然后传递每一行来做到这一点。可以很好地工作30行,而实际上不能工作2万行。

有人可以引导我继续前进吗?

样例代码:

For Each row As string In t
line = Replace(row, "|", "','")
cmd.CommandText = cmd_string + line + "')"
cmd.ExecuteNonQuery()
Next


示例构造的命令:

"INSERT INTO MYTABLE(COLUMN1, COLUMN2) VALUES ('IT ','DE')"


我认为这种方法是完全废话:D
任何建议深表感谢。

/问候

最佳答案

接连执行成千上万的插入确实非常慢。将所有插入物包装到事务中将极大地帮助您。



Using t As SQLiteTransaction = sqlcon.BeginTransaction 'sqlcon being the SQLiteConnection
For Each row As string In t
line = Replace(row, "|", "','")
cmd.CommandText = cmd_string + line + "')"
cmd.ExecuteNonQuery()
Next
t.Commit()
End Using


基本上,您要收集所有要执行的插入操作,完成后,它们都将在一个大的swoosh中执行。这大大加快了速度。

这是有关交易的教程:

http://www.tutorialspoint.com/sqlite/sqlite_transactions.htm

关于sql - VB.Net将大量数据写入SQLite-DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com