Bom dia,

Tenho algumas dúvidas em relação ao modo como o Posgtres realiza a
estimativa do tempo que consultas levarão para serem realizadas. São elas:

- Até onde eu sei o modo de se fazer isso é com o EXPLAIN ANALYZE. Rodando
este comando a query é literalmente executada para me dar o tempo de
execução? Pergunto pois se eu acredito que a execução vai ser longa, eu não
quero ficar esperando todo esse tempo (ex: horas) para ter essa
confirmação. Caso seja mesmo executada, há um modo obter uma estimativa de
modo mais rápido?

- A estimativa para uma consulta é proporcional para várias consultas? Ex:
Um select leva 1 segundo para ser executado. Mil select's (o mesmo
anterior) levarão 1000 segundos? O mesmo serve para Insert, Update e
Delete? Se não for, há um modo de fazer uma estimativa para uma transação
com várias instruções?

- Quando se alteram parâmetros o tempo de execução das consultas muda. Há
um modo de simular a mudança de parâmetros e obter o efeito que cada
mudança surtirá, ou o único jeito é rodar novamente o EXPLAIN ANALYZE após
cada mudança? Pergunto o mesmo para recursos físicos (ex: simular se
determinada consulta teria um desempenho melhor caso fosse adicionado mais
memória RAM à máquina).

- Se eu realizar um benchmark em diversas máquinas, posso inferir que a
diferença de performance será a mesma para todo tipo de consulta? Ex:
máquina 1 obteve performance X, e máquina 2 performance Y, que é duas vezes
melhor que X. Considerando que eu tenha o mesmo banco de dados nas duas
máquinas, com mesmas configurações, sempre terei uma performance duas vezes
melhor na máquina 2 em relação a máquina 1?

Essas eram as dúvidas que lembro que acumulei. Me desculpem se são muito
amadoras ou se não ficaram claras, tentei explicar do melhor modo possível.
Agradeço todo tipo de resposta.

Abraços.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a