Ce n'est généralement pas un problème de serveur SQL, mais la configuration semble affecter uniquement les INSERTS EN VRAC aux serveurs SQL.
Nous avons récemment déplacé VM Hardware et tous les invités déplacés ont vu leurs commutateurs virtuels passer de standard à distribué.
J'ai alors commencé à recevoir
Une erreur fatale s'est produite lors de la lecture du flux d'entrée à partir du réseau. La session sera terminée (erreur d'entrée: 64, erreur de sortie: 0)
sur deux serveurs SQL pendant les opérations BULK INSERT. L'un des serveurs SQL était une machine virtuelle avec la nouvelle configuration et l'autre était un serveur physique. Les deux opérations BULK INSERT provenaient d'une machine virtuelle avec la nouvelle configuration. Les BULK INSERTs n'échouaient pas à chaque fois, c'était très aléatoire quand c'était le cas.
Lorsque nous avons changé le commutateur virtuel pour qu'il devienne un commutateur standard au lieu d'un commutateur distribué, le problème disparaît.
Je cherche plus d'explication pour expliquer pourquoi cela ne fonctionne pas avec un commutateur distribué au lieu d'une résolution. Je suppose que l'opération BULK INSERT est série et avec un commutateur distribué, les paquets sont acheminés via différents hôtes, dont certains peuvent être plus occupés que d'autres, et arrivent sur le serveur de destination au-delà d'un certain seuil de latence. (remarque: il n'y a rien dans le journal des événements de Windows au moment des erreurs sur le serveur source ou de destination)
MISE À JOUR: il s'avère que le problème était dû à la carte réseau. Toutes nos machines virtuelles ont été configurées avec une carte réseau E1000 qui fonctionnait assez bien sur les commutateurs standard. Une fois que nous sommes passés aux commutateurs distribués, nous avons commencé à voir des problèmes avec les gros transferts de données, pas seulement les requêtes SQL. La modification de la carte réseau en VMXNET3 semble avoir résolu le problème.