Bancos de dados são sobre consultas. Você armazena seus dados neles e depois precisa recuperá-los de alguma forma. Aqui vêm as consultas - você as escreve em alguma linguagem, estruturada ou não, dessa forma você define quais dados deseja recuperar. O ideal é que essas consultas sejam rápidas, afinal não queremos esperar por nossos dados. Existem muitas ferramentas que permitem entender como suas consultas se comportam e como elas são executadas. Nesta postagem do blog, compararemos o pgDash e o ClusterControl. Em ambos os casos, o desempenho da consulta é apenas uma parte da funcionalidade. Sem mais delongas, vamos dar uma olhada neles.
O que é pgDash?
pgDash é uma ferramenta dedicada ao monitoramento do PostgreSQL e o monitoramento do desempenho das consultas é uma das funcionalidades disponíveis.
pgDash requer pg_stat_statements para obter os dados. É possível mostrar consultas por base de dados. Você pode definir quais colunas devem ser visíveis (por padrão, algumas delas não são mostradas, para facilitar a leitura dos dados). Você pode ver vários tipos de dados, como tempo de execução (média, máximo, mínimo, total), mas também informações sobre blocos temporários, linhas acessadas, acesso ao disco e acertos de buffer. Isso cria uma boa visão de como uma determinada consulta é executada e qual poderia ser a razão pela qual ela não funciona de maneira eficiente. Você pode classificar os dados usando qualquer coluna procurando por consultas que, por exemplo, sejam as mais lentas ou que escrevam os blocos mais temporários.
Se necessário, você pode pesquisar consultas executadas em uma janela de tempo definida.
A granularidade aqui é de um minuto.
Para cada consulta na lista, você pode clicar e ver estatísticas mais detalhadas.
Você pode ver a consulta exata, alguns dados nela (acesso ao disco, acesso a buffer compartilhado, acesso a blocos temporários). Também é possível habilitar o teste e armazenar o plano de execução das consultas. Finalmente, você pode ver os gráficos mostrando como o desempenho da consulta mudou no tempo.
Em geral, o pgDash apresenta uma boa visão das métricas de desempenho de consulta no PostgreSQL.
Monitoramento e gerenciamento de consultas do ClusterControl PostgreSQL
O ClusterControl vem com o Query Monitor, destinado a fornecer aos usuários informações sobre o desempenho de suas consultas. O Query Monitor pode ser usado para PostgreSQL, mas também para MySQL e Galera Cluster.
ClusterControl mostra dados agregados em todos os bancos de dados e hosts no cluster. A lista de consultas contém informações sobre métricas relacionadas ao desempenho. Número de ocorrências, linhas examinadas, tabelas temporárias, tempo máximo, médio e total de execução. A lista pode ser ordenada usando algumas das colunas (ocorrências, máx., média, desvio padrão e tempo total de execução).
Cada consulta pode ser clicada, mostra o texto completo da consulta, alguns adicionais detalhes e as dicas gerais de otimização.
ClusterControl também vem com o módulo Query Outliers.
Se houver alguma consulta que se desvie do desempenho médio dessa consulta específica tipo, eles serão mostrados nesta seção, permitindo que o usuário entenda melhor quais consultas se comportam de forma inconsistente e tente encontrar a causa raiz para isso.
Tabela PostgreSQL e Métricas de Índice
Além dos dados diretamente relacionados ao desempenho da consulta, ambas as ferramentas fornecem informações sobre outros componentes internos que podem afetar o desempenho da consulta.
pgDash tem uma seção "Ferramentas" na qual você pode coletar informações sobre índices, tamanho da tabela e inchaço:
Dados semelhantes estão disponíveis no ClusterControl, em Query Statistics:
É possível verificar as estatísticas de E/S para tabelas e índices, tabela e índice inchado, índices não utilizados ou duplicados. Você também pode verificar quais tabelas são mais propensas a serem acessadas usando varreduras de índice ou sequenciais. Você também pode verificar o tamanho das maiores tabelas e bancos de dados.
Conclusão
Esperamos que este breve blog forneça informações sobre como o ClusterControl se compara ao pgDash em recursos relacionados ao desempenho da consulta. Lembre-se de que o ClusterControl destina-se não apenas a ajudá-lo no monitoramento de desempenho, mas também a criar e implantar pilhas de HA para vários bancos de dados de código aberto, realizar o gerenciamento de configuração, definir e executar agendamentos de backup e muitos outros recursos. Se você estiver interessado no ClusterControl, você pode baixá-lo gratuitamente.