Les options 2 et 3 nécessitent plus de données transmises au serveur lors d'une mise à jour - et ont donc un surcoût de communication plus important pour les données uniquement.
Chaque ligne possède-t-elle un ensemble différent de colonnes mises à jour ou l'ensemble de colonnes est-il mis à jour de la même manière pour un cycle donné (mais la liste peut varier d'une instance à l'autre)?
Dans ce dernier cas (même ensemble de colonnes mis à jour sur un cycle donné), l'option 1 est susceptible de mieux fonctionner; la déclaration sera préparée une fois et utilisée plusieurs fois avec un minimum de données transférées au serveur pour chaque mise à jour. Dans le premier cas, je chercherais à voir s'il y a un sous-ensemble relativement petit des colonnes qui sont changées (disons 10 colonnes qui sont changées dans des rangées différentes, même si une rangée seulement change jusqu'à 3 de ces colonnes dix). Dans ce cas, je paramétrerais probablement pour les 10 colonnes, en acceptant le surcoût relativement faible de transmission des valeurs de colonne 7-9 qui n'ont pas changé pour la commodité d'une seule instruction préparée. Si l'ensemble des colonnes mises à jour est partout sur la carte (disons que plus de 50 des 100 colonnes sont mises à jour sur l'ensemble de l'opération), il est probablement plus simple de traiter tout le lot. Dans une certaine mesure, cela dépend de la facilité avec laquelle votre langage hôte (API client) gère les différentes possibilités de paramétrage des mises à jour.
Quel type de données stockez-vous dans une table contenant plus de 100 colonnes? –
En fait je n'ai pas compté combien de colonnes il y a, mais il y en a beaucoup. Le modèle de données est bon, c'est juste que l'entité que la table représente a beaucoup de propriétés. –