大批量插入数据问题。。。 接收UDP数据,每秒钟1200条,写的存储过程,表里一共四个字段,1分钟2000条很轻松的就插入数据库了可是1秒钟1200条,测试的时候会少将近1万条,有什么办法能实现快速的插入,插入数据用的是线程池。应该怎么解决呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这与数据库无关,1秒钟1200条,可能是丢包了,而不是数据库的问题udp发送的过快有时就会丢包,只要数据包不完整就丢掉,不接收。 我是本机对本机发的。。也存在丢包的情况吗,我测试的结果是一分钟72000条,能存入65000条左右。。数据库是SQL SERVER2008 本机对本机也有可能丢包的,你要完整性的,就用TCP不容易丢包。特别在单次发送包较大的情况下,udp比效容易丢包。TCP接收的完整性比效好。 本机测试,丢掉一般数据也是“正常”的。udp丝毫也并不保证接收端能够接收到,本机和别的机器并没有什么区别。难道你不知道? 如果你想测试,那么就把数据保存在内存中,不要写入数据库。这样在一台极高性能的pc服务器上,也许能够提高“成功率”。udp就好比说是快递公司只管把邮件扔到私人的汽车上,就算是“投递成功”了,根本不确认是否送了、是否签收了。能够送达,纯粹看人家udp的“心情”。 用TCP协议才能确保发送端与接对端是一一对称的。 如果是插入速度问题,试试SqlBulkCopy 这个应该根本不是数据库插入速度问题UDP是面向无连接的协议,意思就是,哪怕你要连接的对象根本不在网络上,你的数据也能发送出去,而且每条数据的路径不同,会导致你收到的数据和发送数据的顺序不一致,也就是说,使用UDP传输,你不能简单的看你发了多少条,然后存了多少条来评价你的系统性能。我觉得这个实验可以这么做,用3个数据来进行分析:发送数据的条数,实际接收数据的条数,插入到数据库中的条数如果你觉得SQL一分钟插入70000条数据有问题,那你就单纯的开多线程尽量往数据库里插数据,看它一分钟能插入多少条 求正则识别字符串格式 求一个cron表达式 DataGridView使用困惑 制作安装程式序的问题 用C#来实现打印机功能 问一个sql语句问题在c#中的 c#调用DIV的问题 DataAdapter的update到底能不能改变数据库,不论我怎么用好像都没用啊! 问一个控件的combox和treeview问题,谢谢 C#编程,想用textbox内的数据应用到后台中(本人是新手,求指导) 关于图片嵌入到exe的问题 请教在水晶报表中按ACCESS路径显示图片的问题。
udp发送的过快有时就会丢包,只要数据包不完整就丢掉,不接收。
本机对本机也有可能丢包的,你要完整性的,就用TCP不容易丢包。
特别在单次发送包较大的情况下,udp比效容易丢包。TCP接收的完整性比效好。
本机测试,丢掉一般数据也是“正常”的。udp丝毫也并不保证接收端能够接收到,本机和别的机器并没有什么区别。难道你不知道?
UDP是面向无连接的协议,意思就是,哪怕你要连接的对象根本不在网络上,你的数据也能发送出去,而且每条数据的路径不同,会导致你收到的数据和发送数据的顺序不一致,也就是说,使用UDP传输,你不能简单的看你发了多少条,然后存了多少条来评价你的系统性能。
我觉得这个实验可以这么做,用3个数据来进行分析:发送数据的条数,实际接收数据的条数,插入到数据库中的条数
如果你觉得SQL一分钟插入70000条数据有问题,那你就单纯的开多线程尽量往数据库里插数据,看它一分钟能插入多少条