为了账号安全,请及时绑定邮箱和手机立即绑定

TCP发送数据效率低

TCP发送数据效率低

江户川乱折腾 2019-03-30 11:32:37
使用C#连接SQLServer,读取数据库表中的数据,表有10列数据,总共是10W行左右,方法是使用newclient=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);IPEndPointie=newIPEndPoint("127.0.0.1",9050);newclient.Connect(ie);using(SqlCommandcmd=newSqlCommand("SELECT*FROMTableName",con)){using(SqlDataReaderreader=cmd.ExecuteReader()){while(reader.Read()){//读取一个数据,向外发送一个数据。//stringvalue=reader[0].toString();//newclient.Write(...);}}这样子效率挺低,大概需要花费讲解4分钟时间,有没有什么方法比较好减少时间的?程序就是从数据库表中获取表的所有数据,然后将这些数据全部发送到一个服务端程序。
查看完整描述

2 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

关键要看10万条数据有多大,你可以导出为csv计算一下。
一般传输速度和带宽有关,到协议层面的已经很少了
                            
查看完整回答
反对 回复 2019-03-30
?
忽然笑

TA贡献1806条经验 获得超5个赞

1.关闭nagle算法。
2.开一个线程,用来预先把数据库中的数据读到一个缓冲区。每次read最大长度数据,尽可能使数据报长度最大。
3.增大套接字发送缓冲区的大小,为带宽时延乘积的2到3倍最好。
4.使用带有可靠性的UDP传输。
5.尽量减少系统调用
以上方法会提高数据传输性能,可以试一试
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 628 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号