首页 新闻 会员 周边

用的ef6.0写入数据库太频繁,经常导致无法写入

0
悬赏园豆:20 [已解决问题] 解决于 2017-06-20 13:08

因为做的是实时采集的业务,需要短时间内大量的写入数据库数据,导致sqlserver无响应,无法读写,怎么解决?

问题补充:

大概就是每秒对5张表的各写入60多条数据,以后会更多。

晨冬之雪的主页 晨冬之雪 | 初学一级 | 园豆:185
提问于:2017-06-18 16:42
< >
分享
最佳答案
0

队列+高效写入;

实时数据通常不用实体数据库;

收获园豆:20
花飘水流兮 | 专家六级 |园豆:13560 | 2017-06-18 21:20

60条很小,ef,实体库都没什么关系。

你可以这么写:设定一个阀值比如100行提交并且分时间片,如果时间片也到达阀值,那么不管是不是100行都提交。ef大概1000多行以下提交速度还凑合,一旦行数过多速度非常慢。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-06-19 19:41
其他回答(4)
1

那还是用原生的吧或者你没用好ef 6.0

Jeffcky | 园豆:2789 (老鸟四级) | 2017-06-18 16:52
0

短时间,大量,都是不准确的形容词。

没有时间标准,没有数量标准,没有服务器配置参数,

最重要的是没有程序员写的烂代码。啥都无法判断。

所以回答是,解决方法,请一个高级程序员。(高级也是不准确的形容词)

爱编程的大叔 | 园豆:30839 (高人七级) | 2017-06-18 18:12

晕死

支持(0) 反对(0) 晨冬之雪 | 园豆:185 (初学一级) | 2017-06-18 18:14
0

赞同一楼,你用ado.net吧。而且,每秒60条,不算大量吧。。

幻天芒 | 园豆:37175 (高人七级) | 2017-06-18 20:04
0

1。单从解决问题层面考虑,数据库连接有没有复用,频繁发起连接性能开销很大。

2.从业务角度考虑,这些数据频率是否确实需要这么高精度,确实需要的话用队列吧。另外插入尝试改用dapper高效一点

hahanonym | 园豆:1460 (小虾三级) | 2017-06-19 09:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册