Twitter Facebook Google + RSS Feed

Reindexar todas las tablas de una base de SQL Server

13
SQL Server

Jueves, 13 de marzo de 2014 a las 21:48hs por Gustavo Cantero (The Wolf)

Muchas veces nos a pasado que necesitamos reindexar todas las tablas de una base de datos del SQL Server y no encontramos un comando que lo haga. ¿A Uds. les pasó?
Bueno, para no entrar en pánico, especialmente si la base de datos tiene muchas tablas, armamos un script que obtiene sus nombres del diccionario de datos y ejecuta el comando DBCC REINDEX de SQL Server por cada una de ellas:

DECLARE @TableName varchar(200)
DECLARE TableCursor CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
     BEGIN
     
     PRINT 'Reindexando ' + @TableName
     DBCC DBREINDEX (@TableName)

     FETCH NEXT FROM TableCursor INTO @TableName
     END

CLOSE TableCursor
DEALLOCATE TableCursor

Es algo sencillo pero que nos puede ayudar a hacer un trabajo tedioso.
Espero les sirva.
Suerte!


13 comentarios »

  1. Alberto Rabellino dice:

    Esto es muy bueno. Nos hubiera ahorrado trabajo hace tiempo atrás!
    Abrazo

  2. Elias Gonzalez dice:

    Muchas gracias. Muy útil el cursor!

  3. Zoro dice:

    Muchisimas gracias… me salvaste XD me sirvió de maravilla y se mejoro el rendimiento de la base de datos.

  4. milton dice:

    Muchas gracias, que gran ayuda.

  5. Mario Roberto dice:

    Excelente!! De verdad muy util. Muchas gracias.

  6. AUC dice:

    buenazo me sirvio muchas gracias

  7. Te comento que fue realmente de mucha utilidad. Lo menos que puedo hacer es dejarte el comentario.

    Gracias

  8. Victor Sarabia dice:

    WOW Muchas gracias por compartir esta excelente, saludos!

Deja un comentario

Buscar