.net WebService 大数据量时性能的提高

1.直接返回DataSet对象

C#代码  

  1. [WebMethod(Description = "直接返回DataSet对象")]
  2. public DataSet GetUserListDateSet()
  3. {
  4. SqlConnection sqlCon = new SqlConnection("Data Source=.,1444;Initial Catalog=StudyNet;Persist Security Info=True;User ID=**;Password=******");
  5. SqlCommand cmd = new SqlCommand();
  6. cmd.Connection = sqlCon;
  7. cmd.CommandText = "select * from T_User";
  8. SqlDataAdapter da = new SqlDataAdapter(cmd);
  9. DataSet ds = new DataSet();
  10. da.Fill(ds);
  11. return ds;
  12. }

2.返回DataSet对象用Binary序列化后的字节数组

C#代码  

  1. [WebMethod(Description = "返回DataSet对象用Binary序列化后的字节数组")]
  2. public byte[] GetUserListDateSetBytes()
  3. {
  4. DataSet ds = GetUserListDateSet();
  5. //序列化
  6. BinaryFormatter ser = new BinaryFormatter();
  7. MemoryStream stream = new MemoryStream();
  8. ser.Serialize(stream, ds);
  9. return stream.GetBuffer();
  10. }

3.返回DataSetSurrogate对象用Binary序列化后的字节数组

C#代码  

  1. [WebMethod(Description = "返回DataSetSurrogate对象用Binary序列化后的字节数组")]
  2. public byte[] GetUserListDateSetSurrogateBytes()
  3. {
  4. DataSet ds = GetUserListDateSet();
  5. DataSetSurrogate dss = new DataSetSurrogate(ds);
  6. //序列化
  7. BinaryFormatter ser = new BinaryFormatter();
  8. MemoryStream stream = new MemoryStream();
  9. ser.Serialize(stream, dss);
  10. return stream.GetBuffer();
  11. }

4.返回DataSetSurrogate对象用Binary序列化并Zip压缩后的字节数组

C#代码  

  1. [WebMethod(Description = "返回DataSetSurrogate对象用Binary序列化并ZIP压缩后的字节数组")]
  2. public byte[] GetUserListDateSetSurrogateZipBytes()
  3. {
  4. DataSet ds = GetUserListDateSet();
  5. DataSetSurrogate dss = new DataSetSurrogate(ds);
  6. //序列化
  7. BinaryFormatter ser = new BinaryFormatter();
  8. MemoryStream stream = new MemoryStream();
  9. ser.Serialize(stream, dss);
  10. //压缩
  11. return Compress(stream.ToArray());
  12. }
  13. /// <summary>
  14. /// 压缩数据
  15. /// </summary>
  16. /// <param name="data"></param>
  17. /// <returns></returns>
  18. public byte[] Compress(byte[] data)
  19. {
  20. MemoryStream ms = new MemoryStream();
  21. GZipStream zipStream = new GZipStream(ms, CompressionMode.Compress);
  22. zipStream.Write(data, 0, data.Length);//将数据压缩并写到基础流中
  23. zipStream.Close();
  24. return ms.ToArray();
  25. }

5.结果图

时间: 2024-11-12 07:56:22

.net WebService 大数据量时性能的提高的相关文章

关于webservice大数据量传输时的压缩和解压缩

当访问WebSerivice时,如果数据量很大,传输数据时就会很慢.为了提高速度,我们就会想到对数据进行压缩.首先我们来分析一下. 当在webserice中传输数据时,一般都采用Dataset进行数据传输.执行的过程就是先把Dataset转化为xml进行传输,Dataset转化为xml的格式如下: [html] view plaincopy <DataSetName> <DataTableName> <Column1Name>.......</Column1Nam

大数据量时Mysql的优化要点

如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时解决了这一危机.它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升.但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的.这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库. 虽然关系型数据库在海量数据中逊色于NoSQL

大数据量时Mysql的优化

(转自网络) 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时解决了这一危机.它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升.但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的.这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库. 虽然关系型数据库在海量数据中逊

Android, BaseAdapter 处理大数据量时的优化

Android优化 最常见的就是ListView, Gallery, GridView, ViewPager 的大数据优化  图片优化  访问网络的优化优化的原则: 数据延迟加载  分批加载  本地缓存数据优化   1).复用contentview                   2).创建static class ViewHolder                 3).分批加载 滑动监听 或者按钮  显示更多数据  往下拖动 显示 图片优化  1).异步加载           2).

mysql在大数据量下性能调优相关参数

摘自http://blog.csdn.net/nightelve/article/details/17393631 一.thread_concurrency,默认的8 thread_concurrency的值的正确与否, 对mysql的性能影响很大, 在多个cpu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况.thread_concurrency应设为CPU核数的2倍. 比

大数据量传输时配置WCF的注意事项

原文:大数据量传输时配置WCF的注意事项 WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMessageSize:获取或设置配置了此绑定的通道上可以接收的消息的最大大小. basicHttpBinding等预定义的绑定一般具有MaxReceivedMessageSize属性,CustomBinding则需要在Transport中定义. 示例代码: <bindings> <custom

数据库性能优化一:数据库自身优化(大数据量)

数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第一部分 数据库性能优化一:数据库自身优化 优化①:增加次数据文件,设置文件自动增长(粗略数据分区) 1.1:增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里由于CPU和内存的速度远大于硬盘的读写速度,所以可

WebService处理大数据量数据

在通过WebService处理大数据量数据时出现如下错误: soap fault: 运行配置文件中指定的扩展时出现异常. ---> 超过了最大请求长度. 解决方法: 因为上传的文件大于系统默认配置的值,asp.net web service默认的请求长度是4M. 1.针对单个项目,只需修改Web.config就可以了: 修改配置可以在web.config中重新设置,如下:<configuration><system.web><httpRuntime maxRequest

hadoop job解决大数据量关联时数据倾斜的一种办法

转自:http://www.cnblogs.com/xuxm2007/archive/2011/09/01/2161929.html http://www.geminikwok.com/2011/04/02/hadoop-job解å?³å¤§æ?°æ?®é??å?³è??æ—¶æ?°æ?®å?¾æ??ç??ä¸?ç§?å??æ³?/ 数据倾斜是指,map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为