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 DTAWHILE (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 + ']')
ENDDELETE FROM #Indexes WHERE [Index] = @Index AND [Table] = @Table
ENDDROP TABLE #Indexes
¡Quizás os sirva a vosotros también!
señor, qué es el Index Tunning Wizard ?? salu2grzfelizaño
@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!
Si, tiene razón usted, lo siento, es lo que tiene esta enfermedad. Para mi es más fiable usted que Google.
Salu2grz