Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Sollten Sie mehrere Insert-Aufrufe durchführen oder XML übergeben?

Nichts für ungut, aber du machst dir zu viele Gedanken.

Sammeln Sie Ihre Informationen, wenn Sie alles zusammen haben, erstellen Sie eine Transaktion und fügen Sie die neuen Zeilen einzeln ein. Hier gibt es keine Leistungseinbußen, da die Transaktion nur von kurzer Dauer ist.

Ein Problem wäre, wenn Sie die Transaktion für die Verbindung erstellen, die Benutzerzeile einfügen, dann warten, bis der Benutzer weitere Profilinformationen eingibt, diese einfügen, dann warten, bis sie Adressinformationen hinzufügen, und diese dann einfügen, DO NOT MACHEN SIE DIES , dies ist eine unnötig lang andauernde Transaktion und wird Probleme verursachen.

Ihr Szenario (in dem Sie über alle Daten verfügen) ist jedoch eine korrekte Verwendung einer Transaktion, die Ihre Datenintegrität sicherstellt, Ihre Datenbank nicht belastet und - von sich aus - keine Deadlocks erzeugt.

Hoffe das hilft.

P.S. Die Nachteile des XML-Ansatzes sind die zusätzliche Komplexität, Ihr Code muss das XML-Schema kennen, Ihre gespeicherte Prozedur muss auch das XML-Schema kennen. Die gespeicherte Prozedur hat die zusätzliche Komplexität, die XML-Datei zu analysieren und dann die Zeilen einzufügen. Ich sehe wirklich nicht den Vorteil der zusätzlichen Komplexität für eine einfache Transaktion mit kurzer Laufzeit.