4.3 4.3 - Técnicas para detecção de problemas e otimização de desempenho do SGBD e de consultas SQL.
Um dos objetivos de um administrador de banco de dados é garantir que o sistema gerenciador de banco de dados (SGBD) e as consultas SQL executadas sobre ele tenham um bom desempenho.
Para isso, é preciso conhecer e aplicar técnicas para detecção de problemas e otimização de desempenho do SGBD e de consultas SQL.

Algumas dessas técnicas são:
  • Monitorar os recursos do sistema, como CPU, memória, disco e rede, e identificar possíveis gargalos ou sobrecargas que afetem o funcionamento do SGBD. Por exemplo, se a CPU estiver com um alto consumo, pode ser necessário aumentar o número de processadores ou reduzir a carga de trabalho do banco de dados.
  • Analisar os parâmetros de configuração do SGBD e ajustá-los de acordo com as características e necessidades do banco de dados e das aplicações que o utilizam. Por exemplo, se o banco de dados tiver muitas transações concorrentes, pode ser necessário aumentar o tamanho do buffer pool ou o número de conexões permitidas.
  • Utilizar ferramentas e comandos do SGBD para coletar estatísticas sobre o uso e a estrutura dos objetos do banco de dados, como tabelas, índices, visões e procedimentos armazenados. Por exemplo, se uma tabela tiver muitas atualizações, pode ser necessário reorganizar ou recriar os índices associados a ela para evitar a fragmentação dos dados.
  • Utilizar ferramentas e comandos do SGBD para avaliar o plano de execução das consultas SQL e verificar se elas estão utilizando os índices e as estratégias de acesso mais adequados. Por exemplo, se uma consulta estiver fazendo uma varredura completa da tabela em vez de usar um índice, pode ser necessário modificar a consulta ou criar um índice mais apropriado.
  • - Aplicar técnicas de otimização de consultas SQL, como reformular as condições de filtro e junção, evitar subconsultas desnecessárias ou redundantes, utilizar funções agregadas e operadores de conjunto, entre outras. Por exemplo, se uma consulta estiver usando uma subconsulta que retorna muitas linhas, pode ser mais eficiente usar uma junção ou um operador de conjunto como IN ou EXISTS.
  • Realizar testes de carga e estresse para simular cenários reais ou extremos de uso do banco de dados e medir o impacto no desempenho do SGBD e das consultas SQL. Por exemplo, se uma aplicação tiver picos de demanda em determinados horários ou dias, pode ser útil testar como o banco de dados se comporta nessas situações e identificar possíveis pontos de melhoria.