大批量插入数据问题。。。 接收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条数据有问题,那你就单纯的开多线程尽量往数据库里插数据,看它一分钟能插入多少条 remoting使用问题 WinForm窗体上的打X按钮 如何用时间段进行查询 treeview的问题 有没有什么 办法(命令)让一个文件和它之内的所有文件全部 结束被“另一个进程访问” 如何判断一个文件是否为MS的excel类型的文件 关于 验证控件问题 这里为什么不要括号。 对CLI源码的困惑 java调用angles 关于图片嵌入到exe的问题 请教在水晶报表中按ACCESS路径显示图片的问题。
udp发送的过快有时就会丢包,只要数据包不完整就丢掉,不接收。
本机对本机也有可能丢包的,你要完整性的,就用TCP不容易丢包。
特别在单次发送包较大的情况下,udp比效容易丢包。TCP接收的完整性比效好。
本机测试,丢掉一般数据也是“正常”的。udp丝毫也并不保证接收端能够接收到,本机和别的机器并没有什么区别。难道你不知道?
UDP是面向无连接的协议,意思就是,哪怕你要连接的对象根本不在网络上,你的数据也能发送出去,而且每条数据的路径不同,会导致你收到的数据和发送数据的顺序不一致,也就是说,使用UDP传输,你不能简单的看你发了多少条,然后存了多少条来评价你的系统性能。
我觉得这个实验可以这么做,用3个数据来进行分析:发送数据的条数,实际接收数据的条数,插入到数据库中的条数
如果你觉得SQL一分钟插入70000条数据有问题,那你就单纯的开多线程尽量往数据库里插数据,看它一分钟能插入多少条