Insert vs. Append


Insert - Adiciona um registro em branco na posição que o mouse está posicionado.
Append - Adiciona um registro em branco na última posição;

Pensei que a única diferença entre o método Delphi Append e Insert era onde o registro aparece-se. Para a maioria dos casos isso é verdade. Na verdade, se você olhar a documentação Delphi você vai encontrar as descrições de métodos são praticamente idênticos e ambos incluem o seguinte: ". Após o novo registro é aplicado de volta ao servidor de banco de dados, a sua localização física é específico do banco de dados para tabelas indexadas, o índice é atualizado com as informações do novo álbum. " Em algumas situações de interface de usuário que eu posso certamente ver um uso para o método Insert, mas eu quase sempre usar o método Append, especialmente quando se escreve operações em lote que inserir um número de registros. Há uma diferença sutil implementação no código Delphi TDataSet (o código Delphi, não o código descendente Advantage), que pode ter um efeito dramático em vez sobre o desempenho. Uma chamada para acrescentar define um sinalizador EOF no buffer de registro interno. Uma chamada para Insert não. Os resultados bandeira EOF internos em uma chamada para TDataSet.Last antes de cada post chamada. Uma chamada para o último resultado em uma viagem extra para o servidor. Não é um grande negócio para uma única inserção, mas de uma operação de inserção em lotes a partir do cliente isso pode ter um enorme impacto sobre o desempenho, especialmente se os dados estão localizados em uma máquina remota. Em um teste muito rápido I anexa 10.000 registros a uma tabela usando uma conexão com o servidor remoto Advantage para um PC diferente (não o servidor Advantage no meu PC de teste, eu queria que o tráfego de rede). Eu corri o teste uma vez usando Anexar e uma vez usando Insert. Tenho certeza que você pode ver onde eu estou indo com isso ... Anexar levou quase o dobro do tempo Insert! Anexar: 8359 ms Insert: 4.409 ms inserções lote são melhor realizadas via SQL, mas eu sei que um monte de aplicativos processá-los uma linha de cada vez usando acrescentar. Se você tiver o código que faz isso pode valer a pena o seu tempo para tentar testar com Inserção.

0 comentários:

Postar um comentário