Os arquivos de dados do banco de dados de produção do SQL Server 2005 ficam em uma unidade física separada, que a ferramenta Desfragmentador de Disco do Microsoft Windows 2003 reporta como 99% fragmentada.
Planejamos uma tarefa para desfragmentar esta unidade às 3:00 da manhã de um sábado. O trabalho foi concluído após 40 minutos sem erros aparentes. No entanto, a unidade permanece fortemente fragmentada.
Deveríamos ter parado o (s) serviço (s) do SQL Server antes da desfragmentação?
CONTEXTO
Por solicitações de contexto: Temos uma instância do Microsoft SQL Server 2005 (9.00.5324.00) executando o Windows Server 2003 (SP2) de 32 bits no hardware Dell PowerEdge 2950, por volta de 2007, com 4 GB de RAM. O PowerEdge 2950 possui quatro unidades de 68 GB configuradas como RAID-1 para criar dois discos virtuais de 68 GB: (1) C (inicialização e SO) & D (arquivo de paginação, diversos outros dados); e (2) E (dados SQL). Que eu saiba, a equipe de TI nunca desfragmentou nenhuma dessas unidades ... O Desfragmentador de disco relata a fragmentação de arquivos de 66% (C), 77% (D) e 99% (E). O Monitor de desempenho relata os seguintes resultados médios: "Arquivo de paginação:% de uso" = ~ 6,8% ; "SQL Server: Buffer Manager - Expectativa de vida da página" = 20 segundos ; e "PhysicalDisk: média de disco / gravação, unidade E" = entre 300 e 1,. Esperamos uma atualização de hardware e SQL Server muito necessária em alguns meses (ou seja, novo hardware, Windows Server 2012 de 64 bits, SQL Server 2012 de 64 bits, 12 GB de RAM), mas, devido à desempenho do usuário, deseja aliviar o problema o máximo possível. Assim, pensar que uma desfragmentação de arquivo pode ajudar a unidade E, a principal unidade de dados SQL.
Como um aparte, na semana passada, puxamos duas unidades com falha e reconstruímos a matriz ... não tenho certeza se isso importa. Contratamos outra equipe de TI para manter o servidor, para que não tenhamos acesso direto ao equipamento ... nossa organização paga apenas pelos serviços.
Podemos pagar o tempo de inatividade durante as janelas de manutenção programadas regularmente (semanalmente), bem como o tempo de inatividade fora da banda, conforme necessário, durante a noite.
fonte
SELECT *
todo o lugar ou de alguma outra prática incorreta.Respostas:
Pessoalmente, usei o Raxco PerfectDisk (não associado à empresa ou a qualquer um de seus funcionários) para fazer desfragmentações online de LUNs do SQL Server. Funciona perfeitamente, se diminuir a velocidade do servidor. Eu recomendaria fazê-lo durante períodos de atividade mais leve. Quando digo "funciona perfeitamente", estou me referindo a ele não corrompendo o volume ou os arquivos de dados SQL.
O desfragmentador interno faz um trabalho muito ruim se determinadas estruturas estiverem fragmentadas na unidade. O PerfectDisk mostra detalhes sobre todos os itens fragmentados, incluindo tabelas de alocação NTFS, diretórios, fluxos de arquivos alternativos, etc. etc.
O PerfectDisk desfragmenta bancos de dados SQL? http://support.raxco.com/KB/a106/does-perfectdisk-defragment-sql-databases.aspx
Consulte esta cópia de arquivo da Technet News Magazine sobre SQL Server e fragmentação: http://web.archive.org/web/20100803204458/http://www.microsoft.com/technet/abouttn/flash/tips/tips_083104.mspx
fonte
Seu problema não é a fragmentação do disco. Seu problema é a verificação de RAM e da tabela de aplicativos:
Você precisa de muito mais memória RAM. Como no seu novo servidor, deve ter muito, muito, muito mais que 12 GB. Comece com 64 GB, custa basicamente dez centavos . E sim, corrija seu aplicativo para usar índices. 20 segundos é uma indicação muito clara de varreduras de tabela que descartam o buffer pool. Você precisa corrigir o aplicativo, adicionar os índices necessários e corrigir suas consultas . Para o seu caso, desfragmentar as unidades é tanto um arenque vermelho quanto um arenque vermelho.
Ah, e mova o log para separar eixos físicos dos dados . Sozinho.
fonte
Brad McGehee descreve bem aqui:
http://www.bradmcgehee.com/2011/06/do-you-ever-physically-defragment-your-sql-server-mdf-ldf-files/
... se você deixar o serviço SQL Server em execução durante a desfragmentação, os arquivos do banco de dados serão abertos e, portanto, não serão desfragmentados.
fonte