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


     
  • 相关阅读:
    docker gitlab意外强制关机导致gitlab启动后报错unexpected end of JSON input
    Dockerfile实践记录
    html 打开新页面
    【rt-thread】2、尝试用ENV添加18b20传感器
    【rt-thread】1、快速建立rt-thread nano最小裁剪工程
    Git pull 强制覆盖本地文件
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    51单片机局部变量占用ram的问题
    【乐为物联】1、初识乐联
    Wing-AEP平台LWM2M设备接入
  • 原文地址:https://www.cnblogs.com/ranran/p/4024303.html
Copyright © 2020-2023  润新知