Um banco de dados de computador que vê freqüente acrescenta , exclusões e atualizações , com o tempo , sofrem fragmentação do índice , reduzindo o banco de dados para baixo. Software de banco de dados SQL Server da Microsoft tem dois Structured Query Language (SQL) que comanda a resolver este problema : DBCC INDEXDEFRAG e DBCC DBREINDEX . Embora ambos resolver o problema , as diferenças entre os dois ditar como você usá-los. Ação
O comando DBREINDEX reconstrói índices da tabela a partir do zero , ao passo que INDEXDEFRAG mantém os índices, mas reorganiza seus conteúdos. Você pode executar o equivalente a DBREINDEX emitindo um DROP INDEX e CREATE INDEX para cada índice que deseja reconstruir ; DBREINDEX é mais rápido e menos propenso a erros de digitação. INDEXDEFRAG compacta o índice de acordo com o seu fator de preenchimento , que remove todas as páginas vazias criadas durante a operação de desfragmentação
velocidade
A velocidade relativa dos dois comandos depende do grau . de fragmentação em índices de uma tabela . INDEXDEFRAG funciona mais rápido se os índices têm uma quantidade relativamente baixa de fragmentação : leva menos tempo para fazer a varredura e reorganizar algumas páginas em um índice de reconstruí-la com DBREINDEX . No entanto, se você deixar uma quantidade significativa de passagem , pois você reindexed banco de dados, INDEXDEFRAG vai demorar mais tempo do que DBREINDEX .
Exclusive contra acesso compartilhado
DBCC DBREINDEX requer acesso exclusivo para a mesa, bloqueando efetivamente a todos os usuários e processos para fora, enquanto ele funciona. Os índices da tabela são incompletos até a conclusão do comando , assim que as solicitações do usuário para dados falharia se eles tentaram acessar a tabela . Por outro lado , INDEXDEFRAG simplesmente remodela o índice existente , de modo que permite aos usuários acessar a tabela .
Opções
Ambos os comandos têm uma opção NOINFOMSGS , desligar qualquer mensagens que poderiam surgir durante a execução. DBREINDEX permite reconstruir um ou todos os índices de uma tabela em um único comando. INDEXDEFRAG funciona em apenas um índice de cada vez, para que as tabelas com vários índices exigir vários comandos. O DBREINDEX permite alterar fator de preenchimento de um índice, permitindo-lhe construir mais ou menos livre espaço para o índice . Índices com mais espaço livre demorar mais espaço em disco, mas correr ligeiramente mais rápido se os programas freqüentemente adicionar registros para a mesa.