Você está na página 1de 2

SQL Server - Dicas para evitar gargalos de CPU,

memória e I/O no SQL Server


Produto : TOTVS Banco de Dados

Versão RM : Qualquer Versão

Banco de Dados : SQL Server

Processo : Dicas para evitar gargalos de CPU, memória


e I/O no SQL Server

Sub Processo : Manutenção

Data da Publicação : 27/02/2014

Dicas para evitar gargalos de CPU, memória e I/O no SQL Server

Neste artigo, mostraremos algumas dicas para evitar gargalos referentes ao consumo de CPU, memória e disco no SQL Server.

Para maiores informações sobre análise de desempenho no SQL Server, sugiro a leitura do documento “Troubleshooting Performance Problems
in SQL Server 2008”:

http://download.microsoft.com/download/D/B/D/DBDE7972-1EB9-470A-BA18-58849DB3EB3B/TShootPerfProbs2008.docx

Como pré-requisito, você deve possuir conhecimentos básicos sobre a administração de servidores Windows e instâncias SQL Server.

Problemas envolvendo CPU

1. A recompilação de instruções causa overhead de CPU. Por isso, considere a parametrização das consultas (bind) e criação de
procedures. As recompilações também são causadas por alterações no ambiente ou através do hint WITH RECOMPILE;
2. A sintaxe das consultas afeta diretamente o consumo de CPU. Portanto, avalie o plano de execução das novas consultas antes de
colocá-las em produção;
3. Estatísticas atualizadas ajudam na determinação de um melhor plano de execução, e consequentemente, podem reduzir o tempo total
de processamento;
4. O paralelismo é muito interessante, mas deve ser utilizado com cautela, pois pode gerar concorrência entre os processos aumentando o
tempo total de processamento;
5. Em geral, o consumo de CPU com o paralelismo é maior. Ele é ótimo para processamentos em batch e OLAP. Porém, não é muito
recomendado em ambientes de sistemas OLTP, tais como a linha RM TOTVS;
6. Considere a utilização de índices corretos, rebuild de índices, views indexadas ou particionamento para melhoria do plano de execução
das consultas muito pesadas;
7. Atenção com cursores, principalmente os que são executados constantemente retornando pequenos resultados. Eles aumentam o
consumo de CPU e também o trafego de rede;

Problemas envolvendo memória

1. Identifique quem são os maiores consumidores de memória e procurar eliminá-los;


2. Cuidadosamente, cheque os limites de memória físicos e valide se realmente é necessário adicionar mais recursos;
3. Verifique as configurações de memória da instância SQL Server para evitar problemas de internal pressure. Avalie a quantidade mínima
e máxima de memória para instância e a quantidade mínima de memória por consulta;
4. Avalie se o workload atual está de acordo com o hardware;
5. Caso tenha problemas com memória virtual, considere o aumento do tamanho dos arquivos bem como cheque o consumo I/O destes
discos para evitar gargalos;
6. Em geral, não se tem controle sobre a memória consumida por componentes internos do SQL Server. Entretanto, é importante conhecer
quem são os maiores consumidores de memória durante a operação normal do sistema e compará-los quando algum erro de memória
ocorrer. Isso certamente irá ajudar na investigação do problema.

Problemas envolvendo I/O

1. Parte das leituras podem ser feitas no disco, além da gravação dos arquivos de log e do tempdb. Por isso deve-se dar atenção ao I/O de
disco;
2. As operações no arquivo de log são sequenciais, enquanto que nos arquivos de dados são randômicas. Portanto, separe estes arquivos
em discos diferentes;
3. Atenção para o tempdb, pois ele é compartilhado entre as bases da instância. Além disso, ele armazena resultados intermediários,
ordenação e versionamento de linhas;
4. Uma má configuração de memória refletirá em problemas de I/O. Investigue sempre problemas de memória juntamente com os
problemas de I/O;
5. Procure identificar as consultas que geram maior quantidade de I/O e melhore a sintaxe destas consultas;
6. Compressão de páginas pode ser uma boa ideia para reduzir o I/O, mas avalie bem o cenário, pois ela gera um alto custo de CPU;

7.
7. Antes de aplicar a compressão de páginas em produção, utilize a procedure sp_estimate_data_compression_savings para avaliar os
ganhos com a compressão;
8. Tabelas que são frequentemente acessadas não são boas candidatas para compressão, devido ao aumento do consumo de tempo de
CPU;
9. Em caso de aquisição de hardware, prefira a compra de discos rápidos, com boa taxa de leitura, escrita e controladoras com cache;
10. Dê preferência para a compra de storages híbridas com discos SAS e SSD.

Para Mais Informações

COMUNIDADE R@Tecnologia

Canais de Atendimento:

Chamado: Através do Portal Totvs: www.suporte.totvs.com.br

Telefônico: 4003-0015 Escolhendo as opções 2 – (Software), 2 – (Suporte Técnico), 3 – (RM), 8 – (Tecnologia), 2 – (Banco de
Dados);

Você também pode gostar