.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.结果图


 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。