Ajuste de banco de dados - Database tuning

O ajuste de banco de dados descreve um grupo de atividades usadas para otimizar e homogeneizar o desempenho de um banco de dados . Geralmente se sobrepõe ao ajuste de consulta , mas se refere ao design dos arquivos do banco de dados, à seleção do aplicativo do sistema de gerenciamento de banco de dados (DBMS) e à configuração do ambiente do banco de dados ( sistema operacional , CPU , etc.).

O ajuste do banco de dados visa maximizar o uso dos recursos do sistema para realizar o trabalho da forma mais eficiente e rápida possível. A maioria dos sistemas é projetada para gerenciar o uso de recursos do sistema, mas ainda há muito espaço para melhorar sua eficiência personalizando suas configurações para o banco de dados e o DBMS.

Ajuste de I / O

A configuração de hardware e software de subsistemas de disco é examinada: níveis e configuração de RAID , alocação de tamanho de bloco e fração e a configuração de discos, placas de controlador , gabinetes de armazenamento e sistemas de armazenamento externos, como SANs . Os logs de transações e espaços temporários são grandes consumidores de E / S e afetam o desempenho de todos os usuários do banco de dados. Colocá-los de forma adequada é crucial.

Tabelas e índices frequentemente unidos são colocados de forma que, à medida que são solicitados do armazenamento de arquivos, eles podem ser recuperados em paralelo de discos separados simultaneamente. Tabelas e índices acessados ​​com frequência são colocados em discos separados para equilibrar a E / S e evitar o enfileiramento de leituras.

Sintonização de DBMS

Usuários de DBMS e especialistas em DBA

O ajuste do DBMS refere-se ao ajuste do DBMS e à configuração dos recursos de memória e processamento do computador que executa o DBMS. Normalmente, isso é feito por meio da configuração do DBMS, mas os recursos envolvidos são compartilhados com o sistema host .

O ajuste do SGBD pode envolver definir o intervalo de recuperação (tempo necessário para restaurar o estado dos dados para um determinado ponto no tempo), atribuir paralelismo (a divisão do trabalho de uma única consulta em tarefas atribuídas a diferentes recursos de processamento) e protocolos de rede usado para se comunicar com os consumidores do banco de dados.

A memória é alocada para dados, planos de execução , cache de procedimento e espaço de trabalho . É muito mais rápido acessar dados na memória do que dados no armazenamento, portanto, manter um cache considerável de dados agiliza a execução das atividades. A mesma consideração é dada ao espaço de trabalho. O armazenamento em cache de planos e procedimentos de execução significa que eles são reutilizados em vez de recompilados quando necessário. É importante usar o máximo de memória possível, deixando o suficiente para outros processos e o sistema operacional usarem, sem paginação excessiva de memória para armazenamento.

Os recursos de processamento às vezes são atribuídos a atividades específicas para melhorar a simultaneidade . Em um servidor com oito processadores, seis podem ser reservados para o DBMS para maximizar os recursos de processamento disponíveis para o banco de dados.

Sintonia automática de banco de dados

Utiliza aprendizado de máquina para aprender a avaliar o desempenho em várias cargas de trabalho.

Manutenção de banco de dados

A manutenção do banco de dados inclui backups , atualizações de estatísticas de coluna e desfragmentação de dados dentro dos arquivos do banco de dados.

Em um banco de dados muito usado, o log de transações cresce rapidamente. As entradas do log de transações devem ser removidas do log para abrir espaço para entradas futuras. Os backups frequentes do log de transações são menores, portanto, interrompem a atividade do banco de dados por períodos mais curtos.

O DBMS usa histogramas estatísticos para localizar dados em um intervalo em relação a uma tabela ou índice. As atualizações de estatísticas devem ser agendadas com frequência e amostrar o máximo possível dos dados subjacentes. Estatísticas precisas e atualizadas permitem que os mecanismos de consulta tomem boas decisões sobre os planos de execução, bem como localizem dados com eficiência.

A desfragmentação da tabela e do índice de dados aumenta a eficiência no acesso aos dados. A quantidade de fragmentação depende da natureza dos dados, de como eles são alterados ao longo do tempo e da quantidade de espaço livre nas páginas do banco de dados para aceitar inserções de dados sem criar páginas adicionais.

Referências