Desfragmentando os índices de todas as tabelas de determinado database no MSSQL
Abaixo descrevo a rotina que utilizo para desfragmentar os índices das tabelas de determinada base. Normalmente crio uma procedure com o código abaixo, ou coloco o script diretamente nos blocos de código do agendador do SQLServer Agent no MSSQL 2000 ou MSDE. Se for no SQLExpress 2005, que não possue o Agent, crio um arquivo com extensão .sql e outro arquivo .cmd contendo a chamada para o arquivo .sql e crio uma agendamento no Agendador de tarefas do Windows rodando este arquivo .cmd. -- TROCAR NOME DA BASE NA LINHA ABAIXO EM [database_name] -- E NA LINHA DO COMANDO DBCC INDEXDEFRAG -- EX1.: De USE [database_name] por USE CIGAM . -- EX2.: De DBCC INDEXDEFRAG ([database_name] , @TableName, @IndexName) -- por DBCC INDEXDEFRAG ('CIGAM' , @TableName, @IndexName) USE [database_name] DECLARE @TableName sysname DECLARE @IndexName varchar(20) DECLARE cur_fetch CURSOR FOR SELECT t.name TableName, i.name IndexName FROM sys.sysindexes i, sys.tables t WHE...