数据条数太多,插入到数据库有延迟,怎么解决?
由于JSON 字符串里面有很多条目,所以一个客户端的数据会插入数据N条数据。
代码基本是这样的
----解析JSON成array类型
f
用ASHX页面接收客户端收到的JSON 字符串然后做解析后返回确认值。 由于JSON 字符串里面有很多条目,所以一个客户端的数据会插入数据N条数据。 代码基本是这样的 ----解析JSON成array类型 for i=1 to arraylist.number { ---insert into database ----cmd.ExecuteNonQuery(); } ---返回客户端表示确认已经收到 现在的问题是客户端接收到返回值超级慢,经过排查排除IIS,CPU,内存,网络,程序问题和数据连接问题。 当注释掉cmd.ExecuteNonQuery();这句话的时候返回值很快,说明在数据库插入的时候出现问题。有个现象,当注释掉cmd.ExecuteNonQuery()的时候在看数据插入的数据表数据库插入操作,竟然过了30,40秒还陆陆续续有数据进来,说明之前的数据一直都在SQLserver缓冲里面排队等待插入 插入的数据表就5列,其中一个自增列,一个接收的时间作为索引,其他是数据信息,去掉索引后问题依旧。用自增ID可以大概监测到每秒会有1000条数据进来。 基本可以肯定是客户端数量太多,客户端发一条json数据过来,我这边解析后都会有N条数据需要插入,同时需要即时返回“已经收到”给客户端。 有网友说把收到的一批数据先缓存到dataset,我认为实际上跟现在是一样的,都是要循环一条条插入,本质上是由于硬盘读入瓶颈造成。 有什么方法可以让数据插入到数据表更快些?多建几个相同的表,然后再插入前随机分配到插入数据表有用吗 ?或者说用SSD? (编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |