亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 561 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號