gpt4 book ai didi

c# - 性能不佳的 Sqlite.net 扩展

转载 作者:行者123 更新时间:2023-11-30 20:20:27 25 4
gpt4 key购买 nike

您好,我正在开发一个加载很多行(大约 10K)的 Xamarin 应用

我的性能非常差,大约需要 2 分钟才能插入 5000 行对象。

我使用 InsertOrReplaceWithChildren:

 public  bool Insert_Update_Many<T>(List<T> obj)
{
try
{
lock (this.Lock) {
_connection.RunInTransaction(() => {
_connection.InsertOrReplaceAllWithChildren(obj, true);
});
}
return true;
}
catch (Exception ex)
{
Debug.WriteLine("[SQLITE_ERROR]: " + ex.ToString());
return false;
}
}

自从我添加“RunInTransaction”后,我得到了改进(在 5 分钟以上之前)。

我的对象包含关系船。

有什么办法可以优化吗?

最佳答案

如果没有看到实际的代码,很难判断,但我遇到了几个可能影响性能的问题:

  • InsertOrReplace 性能不佳:尝试调用简单的 Insert 语句而不是 InsertOrReplace。在某些情况下,这可能会产生很大的影响。
  • SQLite.Net 一个接一个地执行插入操作:这个解决方法很复杂,因为它需要您手动编写插入查询以对每个语句执行多个插入。
  • SQLite-Net Extensions 在插入后执行更新操作:这很容易变通,您可以自己分配外键并调用纯 SQLite.Net Insert 关于数据库密集型操作。

关于c# - 性能不佳的 Sqlite.net 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774326/

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