Ir para conteúdo
Fórum Script Brasil
  • 0

Ferramenta para análise avançada de consultas


Andre Cesari

Pergunta

Bom dia, estou a uma semana pesquisando sobre ferramentas ou comandos para que eu possa monitorar e aperfeiçoar minhas consultas no POSTGRES.

Bom, tudo que encontrei ao fim chega até o comando EXPLAIN ANALYSE, Ex:

EXPLAIN ANALYZE SELECT * FROM PESSOA WHERE NOME ILIKE '%JoAo%';

Retorna o tempo de custo para execução e quantas linhas retornaram, o filtro e indice usado se existir, algo superficial.

O que estou em busca é algo que a partir de uma consulta ele me retorne além do que esta a cima, quantas linhas foram lidas para conseguir retornar tantas linhas.

Ex: a tabela tem 10000 registros, a consulta passou por 8000 para conseguir retornar 50 registros.

Com isso posso descobrir onde devo melhorar, criar indice, refatorar a consulta.

Se alguém conhecer uma ferramenta ou comando, é bem vindo.

Obrigado.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

O único jeito mesmo é entender o comando EXPLAIN. Tem dicas de performance no manual:

http://www.postgresql.org/docs/9.0/interac...mance-tips.html

Não sei se o SELECT que você usou como exemplo é um caso real que você está tentando resolver. Se for, o problema dele é que o LIKE com uma expressão que comece com '%' não tem como usar um índice já que o começo do texto pode ser qualquer coisa, então ele vai ler a tabela inteira.

Editado por Kakao
Link para o comentário
Compartilhar em outros sites

  • 0
O único jeito mesmo é entender o comando EXPLAIN. Tem dicas de performance no manual:

http://www.postgresql.org/docs/9.0/interac...mance-tips.html

Não sei se o SELECT que você usou como exemplo é um caso real que você está tentando resolver. Se for, o problema dele é que o LIKE com uma expressão que comece com '%' não tem como usar um índice já que o começo do texto pode ser qualquer coisa, então ele vai ler a tabela inteira.

Obrigado Kakao, já estive lendo os manuais do postgresql 8 e 9 inclusive, tudo que diz la é o que comentei antes, e eu precisava mais informações,

Segundo alguns experientes em BD que conheço disseram-me que em Oracle, firebird, etc... a informação de quantas linhas leu é exibida usando ferramentas.

Porem para postgres ainda não achei.

Sobre a consulta com LIKE você esta certo, porém era mero exemplo, quero melhorar consultas com junções entre varias tabelas (JOIN).

Obrigado pela força.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...