本帖最后由 u010962314 于 2013-06-05 11:37:01 编辑

解决方案 »

  1.   

    由于就是结构化JSON 字符串,然后插入到5个数据库,也算比较简单,所以没有打算写到类库里面。
    你第一句是什么意思?
    我现在是写在一个ASHX 页面里面,就是接收后马上处理。
      

  2.   

    等网络闲置了,再从数据库读取json字符串做解析插入??????1.你 从数据库读取json字符串做解析插入 这个步骤并不耗损 网络,你干嘛等待 网络闲置了再操作?
    2.批量插入时使用事物 效率更高. 或者 拼接所有插入数据的SQL(该方法本人并不推荐).
      

  3.   

    使用SqlBulkCopy批量插入数据库。
    只要你把解析json字符串的方法优化好了,一次500条记录都是很轻松的...
      

  4.   

    ashx作为一般处理程序,不走那么复杂的page生命周期,效率比page类要高是肯定的给几个建议:
    选用高效的json反序列化组件,个人推荐litJson,效率高
    在插入的时候使用批量插入,而不是一条一条插入有精力的话可以自己写队列,也就是说ashx页面进来json反序列化 放入你的数据队列,你用多线程定时去检查该队列是否可以达到提交的要求(比如队列有1000条以上的数据就提交进数据库)当然你还可以把缓存数据库当做队列用,比如redis就提供了队列功能,大致思路一些样
      

  5.   

    应该还可以,在没有使用ASP.NET MVC之前,我都是使用ashx页来出来ajax请求的
      

  6.   

    ashx没有继承Page类 ,没有page的复杂生命周期,效率比。aspx高
      

  7.   


    唉,本身技术有限,用的是NET自带的JSON序列化的,我的就是一条条的插入,由于涉及到了5个表,也不知道怎么批量插入,用了两个foreach,我也知道速度慢,但不会写程序,没有办法。
      

  8.   

    需要注意一点,一次插入应该仅使用一个 Transaction。如果你代码中没有显示地使用Transaction,那么应该修改。如果用了,但是有多个,那么也修改。
      

  9.   

    楼上是经验之谈,顶一个。50条左右的数据,两个foreach速度也是很快的,不用纠结这个,如果确实想简化后台处理逻辑,提高效率,一是改变jason的数据结构,构造成更容易解析识别的结构;二是存储过程,交给数据库处理。
      

  10.   

    你所说的效率和ashx没有啥关系。因为瓶颈不在这里。可以接收的有aspx  ashx webservice wcf 等aspx的效率最低。剩下的三个没有比较过。
    其实瓶颈在于两点:1、json的分析效率;2、存入到数据库的效率。对于第一点,为啥一定要把json转换为实体类?转换成字典不是更好,因为不使用反射,效率会高一些。你也只是把json存到数据库里,又不做啥业务操作,没必要非得转成实体类。