Tenho um SP que atualiza as linhas de uma tabela periodicamente (várias vezes ao dia) o SP atualmente recebe um feed do PK e o valor de atualização. O feed de entrada pode conter de 1 a 1.000 linhas.
Eu quero saber se seria melhor alterar o SP para que ele atualize apenas uma linha por vez e tenha o aplicativo em loop pelas linhas chamando o SP para cada linha, em vez de apenas uma vez para todas as linhas.
Sem detalhes melhores da tabela e das chamadas que o aplicativo está fazendo, vou assumir que cada chamada/valor/linha no feed se refere a um PK diferente . Se todos eles estiverem relacionados a um único valor de chave em uma tabela onde não é a chave exclusiva (por exemplo, uma tabela filha, como
OrderDetails.OrderID
), a solução muda apenas um pouco.Em ambos os casos, o aplicativo não deve chamar o procedimento armazenado 1.000 vezes, por vários motivos. Em vez disso, você pode usar um parâmetro com valor de tabela e passar todos os 1.000 valores de uma só vez.
O procedimento armazenado usa este único parâmetro:
Agora seu aplicativo pode passar, digamos, um DataTable de 1.000 itens. (Você terá que descobrir essa parte porque você não mencionou em qual pilha/linguagem seu aplicativo está.)