这很可能不是SQL Server问题,但设置似乎仅影响对SQL Server的批量插入。
我们最近移动了VM硬件,并且所有移动的客户机都将其虚拟交换机从标准更改为分布式。
然后我开始接收
从网络读取输入流时发生致命错误。会话将终止(输入错误:64,输出错误:0)
在大容量插入操作期间在两个SQL服务器上运行。其中一台SQL服务器是具有新配置的VM,另一台是物理服务器。两种BULK INSERT操作均源自具有新配置的VM。批量插入不会每次都失败,这是非常随机的。
当我们将虚拟交换机更改为标准交换机而不是分布式交换机时,问题就消失了。
我正在寻找更多关于为什么它不适用于分布式开关而不是分辨率的解释。我的猜测是,BULK INSERT操作是串行的,使用分布式交换机时,数据包将通过不同的主机进行路由,其中某些主机可能比其他主机更忙,并且到达目的地服务器的时间超过某些延迟阈值。(注意:在源服务器或目标服务器上发生错误时,Windows事件日志中都没有任何内容)
更新:原来问题出在网卡上。我们所有的虚拟机都配置有E1000 NIC,该NIC在标准交换机上运行良好。转移到分布式交换机后,我们开始看到大型数据传输的问题,而不仅仅是sql查询。将NIC更改为VMXNET3似乎已解决了该问题。