Administrar as cargas de dados dentro de um escopo de recursos físicos de servidor é uma tarefa importante nas atividades do DBA. Neste contexto, este artigo apresenta o assunto cargas de dados no SQL Server 2008 e SQL Server 2008 R2 com o uso do Resource Governor.
Em que situação o tema é útil
Em ambientes com consultas de consumo intenso de recursos de CPU e memória, no tratamento de workloads imprevisíveis, configuração de prioridade de cargas de trabalho entre outros.
Resumo DevMan
Ajustes e otimização de desempenho é um assunto muito amplo e controle de carga de dados faz parte desse tema. Esse artigo introduz o conceito do Gerenciador de Carga de Dados do SGBD SQL Server, com exemplo do dia-a-dia e um passo-a-passo de como implementar esse recurso e monitorar a sua funcionalidade.
O Administrador de banco de dados é o responsável por manter e gerenciar um banco de dados ou sistemas de bancos de dados. Tem como funções:
• Recuperabilidade: criação e testes de backup para garantir a recuperabilidade dos dados no caso de falha de hardware ou outros problemas severos;
• Integridade: verificar e zelar pela integridade do banco de dados;
• Segurança: ter um controle de acesso aos dados como quem pode acessar e o que pode acessar e talvez quando possa acessar;
• Disponibilidade: garantir o acesso ao banco de dados no maior tempo possível;
• Auxílio em desenvolvimento e testes: auxiliar a equipe de desenvolvimento e a equipe de testes a maximizar o uso e desempenho do banco de dados;
• Desempenho: garantir o máximo de desempenho para o banco de dados.
As estratégias de ajuste de performance e otimização (Performance Tuning and Optimization) podem requerer um conhecimento que abrange diversas áreas de um SGBD (Sistema Gerenciador de Banco de Dados). Pensando em ajustes de otimização de bancos de dados, podemos dizer que alguns pontos são chaves, tais como:
- Projeto do banco de dados: é provável que na maior parte dos casos esse seja o fator de maior influência na performance das consultas. As decisões no momento da definição do projeto irão ter impacto direto com a leitura e a gravação dos registros;
- Indexação apropriada: Índices são utilizados para aumentar o desempenho em operações de leitura no banco de dados. Um índice utilizado corretamente pode melhorar exponencialmente a velocidade com que as consultas são retornadas pelo SGBD e diminuir significativamente a quantidade de I/O em disco.
Esta redução de I/O ocorre porque os dados ao serem indexados passam a utilizar a estrutura criada pelo índice, se limitando a uma busca apenas nas páginas de dados do índice.
Sem um índice, o SQL Server é obrigado a realizar uma leitura completa em todas as páginas de dados referente à tabela em que o dado solicitado está armazenado.
Apesar do índice, se bem definido, aumentar o desempenho em operações de leitura e reduzir I/O, ele também gera um custo considerável em operações de escrita. Esse comportamento ocorre porque o índice deve se manter atualizado.
Assim, os índices são a base da alta prioridade nas consultas executadas com frequência. Digamos que se uma consulta é executada milhares de vezes por dia em cinco segundos, se houver o índice apropriado pode ser que essa consulta baixe o tempo para menos de um segundo. Além disso, os índices podem reduzir a pressão do I/O significativamente. Claro que esse é um exemplo supondo que o índice seja realmente necessário e útil para a consulta citada;
- Fragmentação deíndices: com as modificações diárias nos dados os índices tornam-se fragmentados. A fragmentação aumenta com o tempo e os índices acabam se espalhando através de diversas páginas de dados, dada esta informação sabemos que com o tempo os requisitos de I/O aumentam tornando a consulta lenta;
- Configurações: nesta categoria incluem-se os bancos de dados, instâncias do SQL Server e sistemas operacionais. Algumas opções definidas podem deixar o sistema ocupado ou diminuir a capacidade de processamento por algum momento;
- Atualização de estatísticas: existe uma opção no banco de dados que habilita a geração de informações de estatísticas. Se esta opção estiver desabilitada as estatísticas podem ficar desatualizadas;
- Recursos de hardware: O esforço de otimizar uma consulta pode não ter relação com a criação de índices ou atualização de estatísticas, algumas vezes uma limitação de I/O pode ser o grande problema. E são nesses casos que os recursos de hardware são parte fundamental para tuning de um servidor SQL Server;
- Recursos de rede: esses recursos tem relação direta com o tempo para se obter resultados das consultas.
O bom funcionamento dos SGBDS, sem falhas e com performance aceitável, torna-se cada vez mais importantes, visto que o cotidiano desses softwares incluem cargas de informações maiores. Em complemento, o consumo de recursos computacionais aumenta na mesma proporção.
...