Diferença Entre Excluir E Truncar

Diferença Entre Excluir E Truncar
Diferença Entre Excluir E Truncar

Vídeo: Diferença Entre Excluir E Truncar

Vídeo: Diferença Entre Excluir E Truncar
Vídeo: Qual a diferença entre TRUNCATE TABLE e DELETE FROM em Bancos de Dados 2024, Abril
Anonim

Excluir vs truncar

Ambos os comandos SQL (Structure Query Language), Delete e Truncate são usados para eliminar os dados armazenados em tabelas em um banco de dados. Delete é uma instrução DML (Data Manipulation Language) e remove algumas ou todas as linhas de uma tabela. A 'cláusula Where' é usada para especificar as linhas que devem ser excluídas e, se a cláusula Where não for usada com a instrução Delete, ela remove todos os dados da tabela. Truncate é uma instrução DDL (Data Definition Language) e remove todos os dados da tabela. Ambos os comandos não destroem a estrutura da tabela e as referências à tabela, e apenas os dados são removidos conforme necessário.

Apagar Declaração

A instrução Delete permite que o usuário remova dados de uma tabela existente em um banco de dados com base em uma condição especificada, e a 'cláusula Where' é usada para determinar essa condição. O comando Delete é conhecido como uma execução registrada, porque exclui apenas uma linha por vez e mantém uma entrada para cada exclusão de linha no log de transações. Então, isso faz com que a operação fique mais lenta. Delete é uma instrução DML e, portanto, não é confirmada automaticamente durante a execução do comando. Portanto, a operação Delete pode ser revertida para acessar os dados novamente, se necessário. Após a execução do comando Delete, ele deve ser confirmado ou revertido para salvar as alterações permanentemente. A instrução Delete não remove a estrutura da tabela do banco de dados. Além disso, não desaloca o espaço de memória usado pela mesa.

A sintaxe típica para o comando Delete é declarada abaixo.

EXCLUIR DE

ou

EXCLUIR DE ONDE

Declaração truncada

A instrução truncate remove todos os dados de uma tabela existente em um banco de dados, mas preserva a mesma estrutura da tabela, também as restrições de integridade, privilégios de acesso e relacionamentos com outras tabelas. Portanto, não é necessário definir a tabela novamente, e a estrutura da tabela antiga pode ser usada, se o usuário quiser reutilizar a tabela novamente. Truncar remove dados inteiros desalocando as páginas de dados usadas para manter os dados, e apenas essas desalocações de página são mantidas no log de transações. Portanto, o comando truncate utiliza apenas menos recursos de log de transações e sistema para operação, portanto, é mais rápido do que outros comandos relacionados. Truncate é um comando DDL, portanto, usa auto-commits antes e depois da execução da instrução. Conseqüentemente, o truncamento não pode reverter os dados novamente de forma alguma. Ele libera o espaço de memória usado pela mesa após a execução. Mas a instrução Truncate não pode ser aplicada nas tabelas que são referenciadas por restrições de chave estrangeira.

A seguir está a sintaxe comum para a instrução Truncate.

TABELA TRUNCAR

Qual é a diferença entre Excluir e Truncar?

1. Os comandos Delete e Truncate removem dados de tabelas existentes em um banco de dados sem prejudicar a estrutura da tabela ou outras referências à tabela.

2. No entanto, o comando Excluir pode ser usado para excluir linhas específicas apenas em uma tabela usando uma condição relevante, ou para excluir todas as linhas sem qualquer condição, enquanto o comando Truncar pode ser usado apenas para excluir dados inteiros na tabela.

3. Delete é um comando DML e pode reverter a operação se necessário, mas Truncate é um comando DDL, portanto, é uma instrução de confirmação automática e não pode ser revertida de nenhuma forma. Portanto, é importante usar este comando com cuidado no gerenciamento de banco de dados.

4. A operação Truncar consome menos recursos do sistema e recursos de log de transações do que a operação Excluir, portanto, Truncar é considerado mais rápido do que Excluir.

5. Além disso, Delete não desaloca o espaço usado pela tabela, enquanto Truncate libera o espaço usado após a execução, portanto, Delete não é eficiente no caso de excluir todos os dados de uma tabela de banco de dados.

6. No entanto, Truncar não pode ser usado quando a tabela é referenciada por uma restrição de chave estrangeira e, nesse caso, o comando Excluir pode ser usado em vez de Truncar.

7. Finalmente, ambos os comandos têm vantagens e também desvantagens ao aplicá-los em Sistemas de Gerenciamento de Banco de Dados e o usuário deve estar ciente de que usar esses comandos de forma adequada para obter bons resultados.

Recomendado: