Script para eliminar los índices que siguen un determinado patrón

Os dejo un script que elimina todos los índices que siguen un determinado patrón. Yo lo suelo utilizar para eliminar todos los índices que he creado tras usar el Index Tunning Wizard y seleccionar aquellos que realmente me resulta útiles o para poder volver a la línea base que tenía antes de utilizarlo. Podéis cambiar el LIKE ‘_dta_%’ por el patrón que deseéis.

También suelo utilizar este script en sesiones de optimización. Voy añadiendo índices con diferentes prefijos según el escenario que estoy optimizando, veo su impacto sobre el servidor y si quiero eliminar una serie de índices que he añadido para optimizar un determinado escenario lo puedo hacer con suma facilidad.

/* OJO: Este script es peligroso */
/* Comprobar que la select devuelve los índices que realmente deseamos borrar */

DECLARE @Index VARCHAR(128)
DECLARE @Table VARCHAR(128)

SELECT OBJECT_NAME(id) AS [table], name AS [index]
INTO #Indexes
FROM sysindexes
WHERE name LIKE '_dta_%' --Índices y estadísticas creados por el DTA

WHILE (SELECT COUNT(*) FROM #Indexes) > 0
BEGIN
   SET
@Index = (SELECT TOP 1 [Index] FROM #Indexes)
  
SET @Table = (SELECT TOP 1 [Table] FROM #Indexes)

  
IF (@Index LIKE '_dta_stat_%')
      
BEGIN
           PRINT
'DROP STATISTICS ' + @Table + '.' + @Index + CHAR(13)
          
EXEC ('DROP STATISTICS ' + @Table + '.' + @Index )
      
END
   ELSE
       BEGIN
           PRINT
'DROP INDEX [' + @Index + '] On [' + @Table + ']' + CHAR(13)
          
EXEC ('DROP INDEX [' + @Index + '] On [' + @Table + ']')
      
END 

   DELETE FROM
#Indexes WHERE [Index] = @Index AND [Table] = @Table
END

DROP TABLE
#Indexes

¡Quizás os sirva a vosotros también!

Published 4/1/2010 7:21 por Rodrigo Corral
Comparte este post:
http://geeks.ms/blogs/rcorral/archive/2010/01/04/script-para-eliminar-los-237-ndices-que-siguen-un-determinado-patr-243-n.aspx

Comentarios

# re: Script para eliminar los índices que siguen un determinado patrón

señor, qué es el Index Tunning Wizard  ?? salu2grzfelizaño

Tuesday, January 05, 2010 8:18 AM por preguntoncojonero

# re: Script para eliminar los índices que siguen un determinado patrón

@preguntoncojonero: No me molestan las preguntas... que yo puedo contestar mejor que Google.

Lo tuyo es patologíco, tio... no hay que preguntar por preguntar... ¡hombre!

Sunday, January 17, 2010 7:17 PM por Rodrigo Corral

# re: Script para eliminar los índices que siguen un determinado patrón

Si, tiene razón usted, lo siento, es lo que tiene esta enfermedad. Para mi es más fiable usted que Google.

Salu2grz

Wednesday, January 20, 2010 12:06 PM por preguntoncojonero