Delete X Truncate.

#99712
Avatar de rmanrman
Participante

O TRUNCATE não deleta as linhas da tabelas, simplesmente ele marca na estrutura da tabela que aquela tabela está vazia… por isso é considerado como DDL, já o DELETE é um comando DML.

Detalhe importante como o TRUNCATE é DDL, não existe ROLLBACK desta transação, ao contrario do DELETE.

Faça um teste em uma tabela grande, verá que o TRUNCATE é instantaneo, e o DELETE vai demorar um tempo consideravel.

1 – Sim, no caso de eliminar todos os registro de uma tabela o TRUNCATE é mais rapido que o DELETE.

2 – O dicionario de dados, são tabelas que guardam os metadados dos objetos de banco. Imagine que existe uma tabela que possuia informações de todas as tabelas do banco, e uma coluna desta tabela é um campo booleano que indica se a tabela está vazia ou não. Pois é o TRUNCATE vai nesse registro e da um UPDATE no campo setando TRUE, de modo bem grosseiro, seria isso…

plugins premium WordPress