ASHX页面处理效率怎么样? 本帖最后由 u010962314 于 2013-06-05 11:37:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 由于就是结构化JSON 字符串,然后插入到5个数据库,也算比较简单,所以没有打算写到类库里面。你第一句是什么意思?我现在是写在一个ASHX 页面里面,就是接收后马上处理。 等网络闲置了,再从数据库读取json字符串做解析插入??????1.你 从数据库读取json字符串做解析插入 这个步骤并不耗损 网络,你干嘛等待 网络闲置了再操作?2.批量插入时使用事物 效率更高. 或者 拼接所有插入数据的SQL(该方法本人并不推荐). 使用SqlBulkCopy批量插入数据库。只要你把解析json字符串的方法优化好了,一次500条记录都是很轻松的... ashx作为一般处理程序,不走那么复杂的page生命周期,效率比page类要高是肯定的给几个建议:选用高效的json反序列化组件,个人推荐litJson,效率高在插入的时候使用批量插入,而不是一条一条插入有精力的话可以自己写队列,也就是说ashx页面进来json反序列化 放入你的数据队列,你用多线程定时去检查该队列是否可以达到提交的要求(比如队列有1000条以上的数据就提交进数据库)当然你还可以把缓存数据库当做队列用,比如redis就提供了队列功能,大致思路一些样 应该还可以,在没有使用ASP.NET MVC之前,我都是使用ashx页来出来ajax请求的 ashx没有继承Page类 ,没有page的复杂生命周期,效率比。aspx高 唉,本身技术有限,用的是NET自带的JSON序列化的,我的就是一条条的插入,由于涉及到了5个表,也不知道怎么批量插入,用了两个foreach,我也知道速度慢,但不会写程序,没有办法。 需要注意一点,一次插入应该仅使用一个 Transaction。如果你代码中没有显示地使用Transaction,那么应该修改。如果用了,但是有多个,那么也修改。 楼上是经验之谈,顶一个。50条左右的数据,两个foreach速度也是很快的,不用纠结这个,如果确实想简化后台处理逻辑,提高效率,一是改变jason的数据结构,构造成更容易解析识别的结构;二是存储过程,交给数据库处理。 你所说的效率和ashx没有啥关系。因为瓶颈不在这里。可以接收的有aspx ashx webservice wcf 等aspx的效率最低。剩下的三个没有比较过。其实瓶颈在于两点:1、json的分析效率;2、存入到数据库的效率。对于第一点,为啥一定要把json转换为实体类?转换成字典不是更好,因为不使用反射,效率会高一些。你也只是把json存到数据库里,又不做啥业务操作,没必要非得转成实体类。 js的2级联动 请教类似微薄的一个功能 清大家帮帮我 请教,为什么我的中文名字的图片在服务器上无法显示呀? 请问一下!!为什么能调用文本框的值,为什么不能用它更新数据库(SQL)的值啊? Page_PreRender() 事件的作用 求救,数据库问题 有关Droopdownlist 和有些代码看不懂,请大家帮忙看看!谢了! 简单的问题:这两个方法合并到一起怎么写??? 引用出错,求大神指点。ASP.NET 关于URL编码问题 母版页中,contentPlaceHoder为什么总是呆在单元格的中间?
你第一句是什么意思?
我现在是写在一个ASHX 页面里面,就是接收后马上处理。
2.批量插入时使用事物 效率更高. 或者 拼接所有插入数据的SQL(该方法本人并不推荐).
只要你把解析json字符串的方法优化好了,一次500条记录都是很轻松的...
选用高效的json反序列化组件,个人推荐litJson,效率高
在插入的时候使用批量插入,而不是一条一条插入有精力的话可以自己写队列,也就是说ashx页面进来json反序列化 放入你的数据队列,你用多线程定时去检查该队列是否可以达到提交的要求(比如队列有1000条以上的数据就提交进数据库)当然你还可以把缓存数据库当做队列用,比如redis就提供了队列功能,大致思路一些样
唉,本身技术有限,用的是NET自带的JSON序列化的,我的就是一条条的插入,由于涉及到了5个表,也不知道怎么批量插入,用了两个foreach,我也知道速度慢,但不会写程序,没有办法。
其实瓶颈在于两点:1、json的分析效率;2、存入到数据库的效率。对于第一点,为啥一定要把json转换为实体类?转换成字典不是更好,因为不使用反射,效率会高一些。你也只是把json存到数据库里,又不做啥业务操作,没必要非得转成实体类。