Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Dovresti effettuare più chiamate di inserimento o passare XML?

Senza offesa, ma hai finito di pensarci.

Raccogli le tue informazioni, quando le hai tutte insieme, crea una transazione e inserisci le nuove righe una alla volta. In questo caso non si registrano miglioramenti in termini di prestazioni, poiché la transazione avrà vita breve.

Un problema potrebbe essere se si crea la transazione sulla connessione, si inserisce la riga dell'utente, quindi si attende che l'utente inserisca più informazioni sul profilo, si inserisca quella, quindi si attenda che aggiungano le informazioni sull'indirizzo, quindi si inserisca quella, NON FATELO , questa è una transazione inutilmente lunga e creerà problemi.

Tuttavia, il tuo scenario (in cui hai tutti i dati) è un uso corretto di una transazione, garantisce l'integrità dei tuoi dati e non metterà a dura prova il tuo database e non creerà, da solo, deadlock.

Spero che questo aiuti.

PS Gli svantaggi dell'approccio XML sono la complessità aggiunta, il tuo codice deve conoscere lo schema dell'xml, anche la tua procedura memorizzata deve conoscere lo schema XML. La procedura memorizzata ha la complessità aggiuntiva di analizzare l'xml, quindi inserire le righe. Non vedo davvero il vantaggio della complessità aggiuntiva per quella che è una semplice transazione a breve termine.