我正在使用Entity框架在SQL表中解析和存储一些OSM(开放街道地图)数据。
我估计此表中会有 1,100万条记录。哪个将与EF等模型绑定。这太多了吗?
如何才能使这些数据可用且不会太慢?
答案 0 :(得分:1)
DB中的总行数不是EF使用的决定因素。当您需要同时处理许多记录时,EF的问题是什么。如果您经常一次操作许多记录,例如每天插入10k,删除10k或一次更新10k,那么您将需要使用SQL存储过程。
使用Context,上下文对象和代理甚至更改跟踪,对于小事务都很好,大量活动变得很慢。
我个人的经验法则是一次加载大约1000个对象。使用直接sql。 我使用直接SQL并排EF。我使用EF进行95%的活动。 对于数据加载,提取,表副本等,都使用SQL脚本/ Sps。
此外,从EF6开始,您可以告诉EF在外键之外添加额外的索引,以便生成的SQL执行正常。