当前位置: 代码迷 >> C# >> WebService 查到60万数据,怎么用JSON返回
  详细解决方案

WebService 查到60万数据,怎么用JSON返回

热度:90   发布时间:2016-05-05 04:53:59.0
WebService 查到60万数据,如何用JSON返回
我写了一个WebService 用于查表中数据(大概有70万),现在想把这个结果以JSON返回,如何做?


我做了一个拼接JSON格式返回,但在调试发现报错了, 我查过原因是数据太大内存溢出。我改成返回1000条就可以。

想请大侠们帮忙,我要全部数据返回。

返回格式如:{"UserInfo":[{"ID":2,"用户ID":3077,"姓名":"四小"},{"ID":3,"用户ID":2049,"姓名":"青"},{"ID":4,"用户ID":2049,"姓名":"青1"},{"ID":5,"用户ID":2049,"姓名":"松1"},{"ID":6,"用户ID":2049,"姓名":"丹丹"},{"ID":7,"用户ID":2049,"姓名":"马顺松"},{"ID":8,"用户ID":2049,"姓名":"赵文"},{"ID":9,"用户ID":2049,"姓名":"散土户"},{"ID":10,"用户ID":2049,"姓名":"戴夺庆"},{"ID":11,"用户ID":2049,"姓名":"王夺铃"}]}
------解决思路----------------------
循环分批返回,分批处理,如分页
------解决思路----------------------
只能修改用户页面了,点击按钮,先取得一个总数,在循环,每次去2000(或者更多点).直到取完。
------解决思路----------------------
引用:
4楼说 

  最终用户是要导出到TXT文件里,  你说的:取总数,在循环,每次去2000(或者更多点).直到取完。  那怎么接着上一次的连续保存到TXT???


File.AppendText 方法
http://msdn.microsoft.com/zh-cn/library/system.io.file.appendtext(v=vs.80).aspx
------解决思路----------------------
引用:
不建议用SQLite,60W 数据写入SQLite 太耗时,可以考虑保存txt


可以肯定地说,写入效率上,SQLite肯定比直接写文本文件慢.但是,慢多少,我没在这种场景下测过.有时间测一下看看.
读的效率上来说,对于文本文件,如果能一次性读入所有,那么它的读效率肯定也高于一次性读入所有SQLite数据.高多少,我也没测过.
不是到SQLite的读写效率和文本文件的差别是否在可接受范围内.
以往对于不这么大量的数据,SQLite的读写效率肯定是能够接受的,但不代表这种场景下能接受.

但是我当时提出用SQLite也是有我的考虑.
对于60万条(甚至更多)数据来说,一个客户端,它拿到这么大量的数据之后,该怎么用它呢?
如果仅仅是需要顺序访问这些记录,那么显然不需要用SQLite,任何一个支持顺序访问的数据容器都可以,文本文件就够用了。
如果它拿到这些数据后,还希望能在这个数据的基础上再作一些操作,比如筛选、排序、重计算……那么这个时候文本文件的效率就绝对远远差于SQLite了。

所以SQLite方案和文本文件方案相比,前者更适合于客户端对拿到的数据还要进行二次处理的场景,文本文件适用于客户端只需要顺序访问拿到的结果集的场景。
  相关解决方案