Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Devez-vous effectuer plusieurs appels d'insertion ou transmettre XML ?

Sans vouloir vous offenser, mais vous pensez trop à ça.

Rassemblez vos informations, lorsque vous les avez toutes réunies, créez une transaction et insérez les nouvelles lignes une par une. Il n'y a pas d'impact sur les performances ici, car la transaction sera de courte durée.

Un problème serait si vous créez la transaction sur la connexion, insérez la ligne de l'utilisateur, puis attendez que l'utilisateur entre plus d'informations de profil, insérez cela, puis attendez qu'il ajoute des informations d'adresse, puis insérez cela, NE PAS FAITES CELA , il s'agit d'une transaction inutilement longue qui créera des problèmes.

Cependant, votre scénario (où vous avez toutes les données) est une utilisation correcte d'une transaction, il assure l'intégrité de vos données et n'exercera aucune pression sur votre base de données, et ne créera pas - à lui seul - de blocages.

J'espère que cela vous aidera.

PS Les inconvénients de l'approche Xml sont la complexité supplémentaire, votre code doit connaître le schéma du xml, votre procédure stockée doit également connaître le schéma Xml. La procédure stockée a la complexité supplémentaire d'analyser le xml, puis d'insérer les lignes. Je ne vois vraiment pas l'avantage de la complexité supplémentaire pour ce qui est une simple transaction de courte durée.