首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加速EF6 / sqlite的模型实例化

加速EF6 / sqlite的模型实例化
EN

Stack Overflow用户
提问于 2016-08-29 01:59:28
回答 2查看 320关注 0票数 0

例如,我收集了大量的12000个数据条目,并希望通过EF6将它们插入到sqlite数据库中。大多数时间消耗--数据模型的实例化

目前,我循环了12000次‘新的myItem()’

代码语言:javascript
运行
AI代码解释
复制
downloaded12000Items.foreach(result =>{
    var myItem= new myItem
    {
        Id = result.Id,
        Description = result.Description,
        Property1 = result.Property1
    }
    resultList.add(myItem);
});

unitOfWork.ItemRepository.InsertRange(resultList);

如何加快模型的实例化,或者是否有其他方法可以更快地将数据插入sqlite数据库?

编辑:我必须更好地解释我的问题。瓶颈不是插入数据库的insert()。要使用EF6 .insert(someModel),必须创建实体模型类的实例。我必须这样做12000次,所有12000个模型类的实例化需要花费太多的时间。

我的问题是,是否有可能通过克隆或其他方式加快模型类的建立过程?

或者,是否有可能在不使用.insert(someModel)的情况下将数据插入sqlite,或者使用直接的sql命令或其他方法?显然跳过模型实例化可能会有帮助..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-30 00:20:14

瓶颈可能是将实体添加到上下文中。

代码语言:javascript
运行
AI代码解释
复制
unitOfWork.ItemRepository.Insert(myItem);

起初它不需要太多的时间,但是在1000条记录之后,它确实需要时间。

还请参阅this answer以获得您可能添加的其他优化(请阅读链接答案的注释!)。

票数 1
EN

Stack Overflow用户

发布于 2016-08-29 02:03:13

如何加快模型的实例化,或者是否有其他方法可以更快地将数据插入sqlite数据库?

在完成循环并插入"12000数据条目“之后,在回购中使用等效的await Context.SaveChangesAsync()Tell me more

注意,为了提高性能,不再需要执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
context.Configuration.AutoDetectChangesEnabled = false;  // out of date
context.Configuration.ValidateOnSaveEnabled = false; // out of date

...such代码有其自身的缺点,但更重要的是,它基于过时的哲学,没有利用EF中的await

下面是我用来保存需求实现矩阵的生产代码片段:

代码语言:javascript
运行
AI代码解释
复制
// create your objects
var matrix = // in my prod code I create in excess of 32,600+ matrix cells
foreach (var cell in cellsToAdd)
{
    matrix.Cells.Add(cell);
}

using (var context = new MyDbContext())
{
    context.Matrices.Add (newMatrix);

    await context.SaveChangesAsync();
}

当我在我的生产环境中插入32,646个矩阵单元时,我发现这是非常好的。简单地使用awaitSaveChangesAsync()可以提高性能12倍。其他策略,如批处理,虽然有些有用,但并不像AutoDetectChangesEnabled这样的有效和禁用选项,可以说,辜负了使用ORM的目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39203463

复制
相关文章
实例化模型
完成业务逻辑处理,包括对数据表的增删改查(CUED)操作。对处理的数据进行封装;对字段及属性进行验证;完成对象及属性的过滤等功能。Thinkphp模型类的命名规则:使用驼峰法命名,并且首字母大写,然后加上模型层的名称。
PM吃瓜
2019/08/12
1.3K0
实例化模型
Newbe.Mahua.Samples.Sqlite SQLite操作实例
文本将通过实现一个记录”收到消息数量”的功能,来演示如何在本SDK中操作数据库的SQLite数据库。
newbe36524
2020/03/16
6430
学习SQLite之路(五) C/C++ SQLite开发实例
  介绍一种乌班图中使用sqlite的用法,非常简单,下面的例子是在乌班图12.04中实现的: 1,先安装两个东西: sudo apt-get install sqlite sqlite3 sudo apt-get install libsqlite3-dev  // 不然可能会报 没有头文件 sqlite3.h 2,C/C++接口:一般用到下面这三个,详情请参考sqlite官方文档。 (1)sqlite3_open(const char *filename, sqlite3 **ppDb):     打开
xcywt
2018/01/11
1.9K0
学习SQLite之路(五) C/C++ SQLite开发实例
模型加速
CLIP-Q: Deep Network Compression Learning by In-Parallel Pruning-Quantization CVPR2018 http://www.sfu.ca/~ftung/ 裁剪和量化一体化框架
用户1148525
2019/05/26
8820
可视化格式模型基础应用实例
本文讲述了一种可视化格式模型基础应用实例,通过一个居中的按钮和跟随其后的文本,展示了如何利用可视化格式模型实现居中对齐和自适应缩放。同时,还介绍了一些基础知识,包括可视化格式模型的定义、特点和应用场景,以及实现方式。
练小习
2017/12/29
7210
Auto-Sklearn:通过自动化加速模型开发周期
典型的机器学习工作流程是数据处理、特征处理、模型训练和评估的迭代循环。想象一下,必须对数据处理方法、模型算法和超参数的不同组合进行试验,直到我们获得令人满意的模型性能。这项费时费力的任务通常在超参数优化期间执行。
deephub
2021/09/15
8380
Auto-Sklearn:通过自动化加速模型开发周期
使用memcached加速web应用实例
在实际应用中,一般会把数据库查询的结果保存到memcached中,下次訪问数据库时直接从memcached中获取。而不再进行数据库操作,这样非常大的程度上减轻了数据库的负担。
全栈程序员站长
2022/07/10
7650
使用memcached加速web应用实例
iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例
  本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据。然后再把操作SQlite数据库常用的方法进行一个封装。把常用方法进行封装后,把Cars数据库中的其中一个表的数据进行查询,并在UITableView上进行展示。因为本实例要对数据库的数据进行modify(修改)操作 ,在iOS系统上呢,为了安全起见,在Bundle中的数据库资源是不允许进行数据的插入修改和删除操作的。在之前的博客中我们只进行了查询操作,所以从Bundle加载数据库资源文件是可行的。   如果对数据库进程insert
lizelu
2018/01/11
1.9K0
iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例
使用EF6简实现多租户的应用
网上有好多解释,有些上升到了架构设计,让你觉得似乎非常高深莫测,特别是目前流行的ABP架构中就有提到多租户(IMustHaveTenant),其实说的简单一点就是再每一张数据库的表中添加一个TenantId的字段,用于区分属于不同的租户(或是说不同的用户组)的数据。关键是现实的方式必须对开发人员来说是透明的,不需要关注这个字段的信息,由后台或是封装在基类中实现数据的筛选和更新。
阿新
2019/09/10
1.1K0
使用EF6简实现多租户的应用
模型加速--Slimmable neural networks
Slimmable neural networks ICLR2019 Code and models will be released
用户1148525
2019/05/26
6040
TVM 加速模型,优化推断
TVM 是一个开源深度学习编译器,可适用于各类 CPUs, GPUs 及其他专用加速器。它的目标是使得我们能够在任何硬件上优化和运行自己的模型。不同于深度学习框架关注模型生产力,TVM 更关注模型在硬件上的性能和效率。
GoCoding
2022/05/27
7550
TVM 加速模型,优化推断
Android学习--持久化(三) SQLite & LitePal
    自己做为一个iOS开发,看到安卓这一块的时候,那中浓烈的熟悉味道更加强烈,SQLite这种轻量级的关系型数据库的使用在移动端相差不多,iOS有FMDB,Android有LitePal, 这一篇文章好好总结一下 SQLite & LitePal,由于自己用的是Mac系统,在配置 adb的时候也遇到了一些问题,把这些问题也都说一下,避免大家跳太多的坑吧。这个我们就先说说在Mac系统下配置这个adb,因为这个不管是我们使用原生SQLite还是用LitePal,这东西都是必须的,说以先说说它的一个配置:
Mr.RisingSun
2018/07/31
8220
Android学习--持久化(三) SQLite & LitePal
不用GPU,稀疏化也能加速你的YOLOv3深度学习模型
最近,创业公司Neural Magic带来了一种名叫新的稀疏化方法,可以帮你解决烦恼,让你的深度学习模型效率“一节更比七节强”!
量子位
2021/06/17
8130
UltraRAM的实例化方式
有三种实例化UltraRAM的方法:采用URAM288原语,采用手工编写RTL代码结合RAM_STYLE综合属性,采用XPM_MEMORY。相比下来,采用XPM_MEMORY最为快捷高效,因此这里只介绍这种方法。
Lauren的FPGA
2019/10/31
3.3K0
SpringBean 的实例化过程
因为 bean 在配置时有两种情况,1. 别名 2. 传入是工厂的Bean名,例如 &beanName
Tim在路上
2020/08/04
7720
用KFServing加速联邦学习模型的部署
12月初召开的 CNCF KubeCon 中国线上虚拟会议上,我们 VMware 云原生实验室的工程师王方驰和社区合作伙伴做了一个演讲分享:用KFServing加速联邦学习模型的部署。该演讲介绍了我们把联邦学习和云原生技术有机结合的方法,实现了安全可靠的云原生联邦学习平台,并且贡献到 FATE / KubeFATE 的开源项目中。
Henry Zhang
2021/12/26
6710
点击加载更多

相似问题

SQLite EF6误差

13

加速SQLite查询

11

加速SQLite查询

11

加速插入Sqlite?

34

加速SQLite启动?

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档