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:%
Pues eso, que me recomendais?? Qué diferencias sustancias existen entre
ambas técnicas de "vaciado" de tablas??

Gracias de antemano

Jesús Lozano


Respuesta Responder a este mensaje
#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$
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:%
> Pues eso, que me recomendais?? Qué diferencias sustancias existen entre
> ambas técnicas de "vaciado" de tablas??
>
> Gracias de antemano
>
> Jesús Lozano
>
>


Respuesta Responder a este mensaje
#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:
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$
> 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:%
> > Pues eso, que me recomendais?? Qué diferencias sustancias existen


entre
> > ambas técnicas de "vaciado" de tablas??
> >
> > Gracias de antemano
> >
> > Jesús Lozano
> >
> >
>
>


Respuesta Responder a este mensaje
#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:%
Pues eso, que me recomendais?? Qué diferencias sustancias existen entre
ambas técnicas de "vaciado" de tablas??

Gracias de antemano

Jesús Lozano


Respuesta Responder a este mensaje
#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:
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:
> 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$
> > 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:%
> > > Pues eso, que me recomendais?? Qué diferencias sustancias existen
entre
> > > ambas técnicas de "vaciado" de tablas??
> > >
> > > Gracias de antemano
> > >
> > > Jesús Lozano
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida