Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Você deve fazer várias chamadas de inserção ou passar XML?


Sem ofensa, mas você está pensando demais nisso.

Reúna suas informações, quando tiver tudo junto, crie uma transação e insira as novas linhas uma de cada vez. Não há impacto no desempenho aqui, pois a transação será de curta duração.

Um problema seria se você criasse a transação na conexão, inserisse a linha do usuário e esperasse que o usuário inserisse mais informações de perfil, insira isso, aguarde que ele adicione informações de endereço e insira isso, NÃO FAÇA ISSO , esta é uma transação desnecessariamente longa e criará problemas.

No entanto, seu cenário (onde você tem todos os dados) é um uso correto de uma transação, garante a integridade de seus dados e não sobrecarregará seu banco de dados e não criará - por si só - deadlocks.

Espero que isto ajude.

P.S. As desvantagens da abordagem Xml são a complexidade adicional, seu código precisa conhecer o esquema do xml, seu procedimento armazenado também precisa conhecer o esquema Xml. O procedimento armazenado tem a complexidade adicional de analisar o xml e inserir as linhas. Eu realmente não vejo a vantagem da complexidade extra para o que é uma transação simples de execução curta.