Após a avaliação do hardware e sistema operacional do banco de dados, passamos para a avaliação das configurações gerais do SQL Server conforme algumas das práticas recomendadas pela Microsoft.
Versão do SQL Server
Cada versão do SQL Server é respaldada por um mínimo de 10 anos de suporte, divididos em cinco anos de suporte tradicional e cinco anos de suporte estendido. O suporte tradicional inclui atualizações funcionais, de desempenho, escalabilidade e segurança. O suporte estendido inclui apenas atualizações de segurança, conforme abaixo:
Versão SQL | Término do Suporte Tradicional | Término do Suporte Estendido |
---|---|---|
2019 | 07/01/2025 | 08/01/2030 |
2017 | 11/10/2022 | 12/10/2022 |
2016 | 13/07/2021 | 14/07/2026 |
2014 | 09/07/2019 | 09/07/2024 |
2012 | 11/07/2017 | 12/07/2022 |
2008 R2 | 08/07/2014 | 09/07/2019 |
2008 | 08/07/2014 | 09/07/2019 |
2005 | 12/04/2011 | 12/04/2016 |
Componentes instalados
O SQL Server, como qualquer outro software de banco de dados relacional, utiliza o máximo de recurso disponível no servidor. Por isso o ideal é não haver compartilhamento com outro software. Se não for estritamente necessário, remova do servidor todos os outros componentes de sua aplicação, inclusive os produtos agregados do SQL Server, tais como:
- Analysis Services;
- Reporting Services;
- Integration Services.
Propriedades dos bancos de dados SQL Server
Algumas propriedades do SQL Server alteram o comportamento ideal do produto ou não são recomendadas para ambientes em produção, tais como:
Auto-Close
Essa propriedade fecha o banco de dados e não permite novas conexões. Recomendamos desabilitá-la.
Auto-Shrink
Reduzir o banco de dados automaticamente não é recomendado por vários motivos:
- O Auto-shrink é executado periodicamente em segundo plano, consumindo CPU e I/O que podem causar impactos inesperados no desempenho do produto.
- A redução e o crescimento contínuo dos arquivos de dados podem levar à fragmentação física dos arquivos, o que prejudica tanto as transferências sequenciais quanto os acessos aleatórios.
Por isso recomendamos desativar o auto-shrink.
Page-Verify
Recomendamos a opção do banco de dados PAGE_VERIFY como CHECKSUM. Dessa forma haverá uma detecção mais robusta de problemas de consistência de banco de dados.
Auto-Update-Statistics
Quando a opção AUTO_UPDATE_STATISTICS está ativada, o otimizador de consulta determina se as estatísticas do banco de dados estão desatualizadas e as atualiza automaticamente. Recomendamos configurar tal parâmetro para 1.
Mantenha o SQL Server sempre atualizado
Essa prática recomendada pode parecer óbvia, mas a importância de manter hardware, software e firmware atualizados não pode ser ignorada. Sempre que possível, considere atualizar para uma versão mais recente do SQL Server para aproveitar os novos recursos disponíveis. Mesmo que a empresa decida não migrar para uma versão mais recente do SQL Server, você ainda deve atualizar regularmente suas instâncias e o sistema operacional para se beneficiar de quaisquer aprimoramentos de desempenho e segurança lançados. Nesse link encontram-se as última atualizações do produto Micrososft SQL Server.
Crescimento automático de bancos de dados sem DBA
Nosso entendimento é que um banco de dados deve possuir constante monitoramento e acompanhamento de um profissional especializado. Nos casos em que não há um especialista do produto, recomendamos as configurações abaixo para evitar lentidões ou paradas não programadas do serviço:
Configuração | Descrição |
---|---|
Perform volume maintenance task. | Certifique-se de que a conta usada para o SQL Server Service tenha o direito de executar tarefas de manutenção (Perform volume maintenance tasks). Sem isso, os arquivos de dados não podem ser expandidos usando a inicialização instantânea do arquivo (IFI), que melhora o desempenho do crescimento do arquivo de dados. |
Crescimento automático | Defina um incremento para o crescimento dos arquivos de dados e log no caso de falta de espaço durante um período em produção. Para cada arquivo recomendamos o seguinte ajuste:
Maximum File Size para não crescerem descontroladamente. |
Configuração do TEMPdb
Como dissemos anteriormente, a TEMPdb é responsável por diversas operações internas do produto, e deve ter uma configuração particular.
Localização dos arquivos
Por padrão, seus arquivos são armazenados junto com os binários do SQL Server, e isso não é uma boa ideia. Aconselhamos manter a TEMPdb em um local exclusivo.
Quantidade de arquivos
De acordo com o fabricante, a quantidade de arquivos do TEMPdb deve ser igual a quantidade de processadores lógicos do servidor (até no máximo de 8 arquivos).
Crescimento automático dos arquivos
Nossa recomendação é desligar o parâmetro AUTOGROWTH da TEMPdb para evitar fragmentação do disco e tamanhos diferentes dos diversos arquivos dessa estrutura. O ideal é criar arquivos do mesmo tamanho.
Parâmetros de desempenho
Alguns parâmetros devem ser cuidadosamente configurados para permitir o correto consumo dos recursos do servidor pelo banco de dados, garantindo o desempenho desejado pelas aplicações. São eles:
Minimum e Maximum Server Memory
Por padrão, o SQL Server tem permissão para usar até 2PB de memória do servidor. Normalmente não temos tanta memória disponível, então, precisaremos limitar essa quantidade para que o sistema operacional também consiga ser executado adequadamente. Nossa recomendação é manter 10% ou 4GB (o que for menor) para o sistema operacional e fornecer o restante do valor ao SQL Server, através do parâmetro Minimum e Maximum Server Memory. Se estiver utilizando Integration Services, Reporting Services ou Analysis Services, não esqueça de reservar memória também para esses componentes.
Max Degree of Parallelism (MDOP)
O grau máximo de paralelismo (MAXDOP) é uma opção de configuração do servidor para executar o SQL Server em várias CPUs. Ele controla o número de processadores usados para executar uma única instrução em paralelo. É um dos parâmetros críticos a serem configurados. Para simplificar recomendamos utilizar a fórmula abaixo:
CPUs | MDOP |
---|---|
>=8 | 8 |
<8 | Qtd. de CPus |
Se o banco de dados é utilizado para o Sharepoint, a recomendação da Microsoft é desabilitar o MDOP (Configurar o valor de 1 para MDOP).
Cost Threshold for Parallelism (CTFP)
O otimizador usa esse limite para descobrir quando a avaliar planos de execução elegíveis a vários segmentos. Embora não haja número certo ou errado, 5 é realmente uma configuração baixa, ideal para aplicações exclusivamente OLTP. Nossa recomendação é configurá-lo para 20.
Se o banco de dados é utilizado para o Sharepoint, a recomendação da Microsoft é deixar o valor default para CTFP.
Localização padrão dos arquivos do banco de dados
Devemos configurar a instância para ter locais separados para arquivos de dados, log e backup. Essas configurações na instância serão usadas para preencher automaticamente o local padrão de criação de arquivos dos novos bancos de dados.
Ocupação dos discos pelos bancos de dados
Em um servidor SQL, os discos utilizados para armazenamento dos dados devem estar sempre com um mínimo de 15% de espaço disponível, evitando assim indisponibilidades dos serviços para as aplicações.