Transact-SQL: ¿TRUNCATE o DROP/CREATE TABLE? ¿Qué es mas rapido y seguro?

07/01/2004 - 18:10 por Jesús Lozano | Informe spam
Pues eso, que me recomendais?? Qué diferencias sustancias existen entre
ambas técnicas de "vaciado" de tablas??

Gracias de antemano

Jesús Lozano

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
07/01/2004 - 18:39 | Informe spam
Hola, mira esas tecnicas son buenas ahora ojo con esto, si por ej tenes
clave foranias o vistas indexadas que hacen referencia a este objeto, no
podras usar Truncate ni Drop y deberias usar el viejo y amado Delete.

Ahora si este no es tu caso, me parece mucho mas optimo el Truncate.

Salu2

Maximiliano Damian Accotto


"Jesús Lozano" escribió en el mensaje
news:%
Mostrar la cita
#2 Miguel Egea
07/01/2004 - 19:32 | Informe spam
tienes un artículo muy detallado escrito por eladio rincón en portalsql.com
repasalo está muy bien.


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"Adrian Garcia" escribió en el mensaje
news:#4e$
Mostrar la cita
transacciones
Mostrar la cita
dispara
Mostrar la cita
tabla.
Mostrar la cita
#3 Miguel Egea
07/01/2004 - 23:36 | Informe spam
naturalmente me refería a jesus, se me coló el hilo


=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==
"Miguel Egea" escribió en el mensaje
news:
Mostrar la cita
portalsql.com
Mostrar la cita
comportamiento
Mostrar la cita
al
Mostrar la cita
entre
Mostrar la cita
#4 Adrian Garcia
07/01/2004 - 23:52 | Informe spam
Como siempre, todo depende:

TRUNCATE TABLE es mas rapido, significativamente mas rapido ya que
simplemente marca las paginas de datos e indices de la base de datos
pertenecientes a la tabla como libres y solo deja en el log de transacciones
la referencia de las paginas que fueron liberadas. TRUNCATE TABLE no dispara
triggers por operaciones de DELETE con lo cual a veces este comportamiento
es deseado y otras no. No puedes ejecutar TRUNCATE TABLE si hay alguna
relacion de Foreign key en la tabla, con lo cual primero tendrias que
dropear todas las relaciones para luego ejecutar el TRUNCATE.

El cambio un DELETE va logeando cada fila eliminada en el log de
transacciones y disparando cada trigger de delete asociado a la misma al
mismo tiempo que va actualizando todos los indices relacionados a la tabla.
Si hay 1.000.000 en la tabla todas estas filas iran a parar a log de
transacciones.

Saludos
Adrian D. Garcia
NDSoft


pero hayq ue tener en cuenta que:
"Jesús Lozano" wrote in message
news:%
Mostrar la cita
#5 Adrian Garcia
08/01/2004 - 05:16 | Informe spam
Aun asi nunca viene nada mal leerlo.
Gracias por la info.

Saludos
Adrian D. Garcia
NDSoft


"Miguel Egea" wrote in message
news:
Mostrar la cita
http://www.microsoft.com/spain/tech...9-USER.asp
Mostrar la cita
Ads by Google
Search Busqueda sugerida