因为做的是实时采集的业务,需要短时间内大量的写入数据库数据,导致sqlserver无响应,无法读写,怎么解决?
大概就是每秒对5张表的各写入60多条数据,以后会更多。
队列+高效写入;
实时数据通常不用实体数据库;
60条很小,ef,实体库都没什么关系。
你可以这么写:设定一个阀值比如100行提交并且分时间片,如果时间片也到达阀值,那么不管是不是100行都提交。ef大概1000多行以下提交速度还凑合,一旦行数过多速度非常慢。
那还是用原生的吧或者你没用好ef 6.0
短时间,大量,都是不准确的形容词。
没有时间标准,没有数量标准,没有服务器配置参数,
最重要的是没有程序员写的烂代码。啥都无法判断。
所以回答是,解决方法,请一个高级程序员。(高级也是不准确的形容词)
晕死
赞同一楼,你用ado.net吧。而且,每秒60条,不算大量吧。。
1。单从解决问题层面考虑,数据库连接有没有复用,频繁发起连接性能开销很大。
2.从业务角度考虑,这些数据频率是否确实需要这么高精度,确实需要的话用队列吧。另外插入尝试改用dapper高效一点