Без да се обиждаш, но прекаляваш с това.
Съберете информацията си, когато я получите заедно, създайте транзакция и вмъкнете новите редове един по един. Тук няма удар в производителността, тъй като транзакцията ще бъде краткотрайна.
Проблем би бил, ако създадете транзакцията във връзката, вмъкнете потребителския ред, след това изчакайте потребителят да въведе повече информация за профила, вмъкнете това, след това изчакайте да добави информация за адреса, след това вмъкнете това, НЕ НАПРАВЕТЕ ТОВА , това е ненужно продължителна транзакция и ще създаде проблеми.
Въпреки това, вашият сценарий (където имате всички данни) е правилно използване на транзакция, той гарантира целостта на вашите данни и няма да натовари вашата база данни и няма - сам по себе си - да създаде блокирания.
Надявам се това да помогне.
P.S. Недостатъците на Xml подхода са добавената сложност, вашият код трябва да знае схемата на xml, вашата съхранена процедура също трябва да знае Xml схемата. Съхранената процедура има допълнителната сложност на анализиране на xml, след което вмъкване на редовете. Наистина не виждам предимството на допълнителната сложност за това, което е проста къса транзакция.