作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在开发一个加载很多行(大约 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 Insert
关于数据库密集型操作。关于c# - 性能不佳的 Sqlite.net 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774326/
我是一名优秀的程序员,十分优秀!