我知道,我今晚有问题模式,EF 4.1 Sql CE性能问题
我正在构建桌面应用程序。幸运的是我选择了一个开放的架构,因为我遇到了以下问题:
我的应用程序允许用户添加操作。在我的测试中,我只添加了易于管理的小型(测试)操作。每个操作都被添加到当前是SQL CE 4.0数据库的数据存储中(首先使用EF 4.1代码进行访问,这非常棒)。
现在我使用更大的通用操作(数据库中大约4000行)测试应用程序。而不是几秒钟,插入实际上需要几分钟!在大表中,只有1个外键,当然还有主键,但似乎4000行对它来说只是很多。
将所有行插入到1批次中,并且实际性能缺失位于SaveChanges命令上。
我关于使用手动查询(未经测试)红了,但这不是首选的选项,因为事务不支持,它必须是一个孤立的操作。
那么,我需要一个新的策略吗?在SQL Server 2008上,您可以执行批量插入,但实际上也不受Sql Server CE支持。
客户端解决方案与SQL Server CE和轻量级一样灵活吗? (例如,我不希望用户安装SQL Server,也不使用某些本地组件)。
我可以使用某些形式的序列化,但感觉像重新发明轮子,是很多工作(升级,完整性,多线程访问等)。
提前致谢!
在插入的表格上是否有很多索引,或者是很多连接? 4000行看起来非常小,插入需要几分钟。 – taylonr 2011-04-13 19:57:49
不,没有索引,只有1个外键和1个主键。事实上,只有4列只有4个整数 – Polity 2011-04-13 20:07:42
问题是我没有intellitrace,真的看不到什么在SaveChanges里面。我只是看到时间消耗在那里,只有一大堆数据 – Polity 2011-04-13 20:10:47