Múltiplas inserções com XML vs INSERT… VALUES… SELECT… UNION ALL
-
28-10-2019 - |
Pergunta
Para o SQL Server 2005, se eu quiser inserir cerca de 20 ou 30 linhas cada uma com três colunas, qual abordagem é mais rápida e eficiente?O aplicativo de chamada é um aplicativo de console C # 4.0 .Net.
a) Passando os valores como XML para um procedimento armazenado, analisando-o e fazendo a inserção
OU
b) Construa um comando SQL com INSERT...VALUES... SELECT() UNION ALL
como sugerido aqui: SQL Server2005: inserir várias linhas com uma única consulta ?
Obrigado.
Solução
Você experimentou?Para ser honesto, por 20 ou 30 linhas, seria muito difícil encontrar uma diferença.Em uma escala maior, eu esperaria que o custo de dados extras e análise envolvida com XML para extrair dados tornasse a escolha menos eficiente.No SQL Server 2008, há um construtor VALUES()
mais eficiente que não requer UNION ALL
e também há uma nova abordagem chamada parâmetros com valor de tabela.