domingo, 3 de maio de 2009

relatorios de erro

se¸c˜ao de relat´orio de erro no postgresql.conf
checkpoint (log checkpoints)
locks (log lock waits)
arquivos tempor´arios (log temp files)
Euler Taveira

consulta ao catalogo

consultas ao cat´alogo
pg stat *
pg statio *
pg settings
n´umero de conex˜oes
select datname,count(*) as num from pg stat activity group by
datname
Euler Taveira

pg catalog

pg catalog: cat´alogo ´e uma excelente fonte de informa¸c˜oes!
logs: outra fonte inesgot´avel de informa¸c˜oes (n´ıveis)
#ifdef XXX DEBUG: depura¸c˜ao para hackers
movendo alguns trechos de c´odigo para log
Euler Taveira

Estatisticas

Tabelas de Estatisticas
analise estatistica
par^ametro default statistic target
ALTER TABLE foo ALTER bar SET STATISTICS numero
Euler Taveira

Explain - Rescrever

reescrever a consulta (EXISTS, INTERSECT, EXCEPT, ...)

Explain - Indices

criacao de indices
indices nao resolvem tudo!
escolha o melhor tipo de indice para a(s) colunas(s)
Euler Taveira

Explain - Por que minha consulta esta com desempenho ruim?

estatisticas desatualizadas (ANALYZE)
uso de indices
estimativa ruim
"deficiencia"do planejador
Euler

Explain - Explicando

BEGIN;
EXPLAIN ANALYZE DELETE ...;
ROLLBACK;

Explain - o que é

Mostra o plano de execucao que o planejador do PostgreSQL
elegeu para uma determinada consulta.
como a tabela e percorrida
algoritmos de junicao utilizados
operacoes executadas (ordenacao, ltro, ...)
estimativa de registros e tempo
Euler

logging

logging collector: habilita gravacao de mensagens no pg log
log checkpoints: registra informacoes sobre os pontos de
controle
log lock waits: registra esperas devido a travamentos
log temp les: registra arquivos temporiarios criados
Euler Taveira

Autovacuum - Limpeza automatica

autovacuum: habilitar o autovacuum launcher daemon
autovacuum max workers: numero maximo de workers
simultaneos
autovacuum naptime: intervalo minimo entre execucoes do
autovacuum
autovacuum * threshold: numero minimo de tuplas
modi cadas para disparar um ANALYZE e/ou VACUUM
autovacuum * scale factor: frac~ao minima do tamanho da
tabela para disparar um ANALYZE e/ou VACUUM
autovacuum vacuum cost delay: vacuum cost delay entre

Estatisticas

track activities: habilita coleta de estatisticas do comando
executado atualmente
track counts: habilita coleta de estatisticas da atividade do
banco de dados

custo

custo
seq page cost: custo de busca de uma pagina em disco
sequencialmente
random page cost: custo de busca de uma pagina em disco
randomicamente; valores menores aumentam chance de uso
de indices!
e ective cache size: tamanho da cache em disco disponivel
para uma consulta; e utilizado somente para estimativas.

checkpoint

checkpoint segments: numero maximo de segmentos de
arquivo de log entre pontos de controle automaticos
checkpoint timeout: intervalo maximo entre pontos de
controle automaticos
checkpoint completion target: fracao do intervalo de
pontos de controle

commit_siblings

numero munimo de transacoes abertas
antes de esperar commit delay

commit_Delay

tempo entre escrever um registro no WAL e
escreve-lo no disco

wal_buffers

tamanho necessário para armazenar o WAL de
uma transacao

full_page_Writes

escre pagina completa na primeira modificacao apos um ponto de controle(checkpoint)

wal_sync_method

open_datasync, fdatasync, fsync_writethrough,fsync e open_sync

synchronous_commit

espera o WAL ser escrito no DISCO?

fsync

garante que o SO escreveu o WAL no disco

maintenance_work_mem

memoria utilizada para operacoes de manutencao(VACUUM,CREATE INDEX,ALTER TABLE,ADD FOREIGN,ETC)
50% a 75% da maior tabela ou indeice é um bom numero
cide vacuum verbose

work_mem

memoria utilizada para ordenacoes e agregacoes

temp_buffers

utilizado para acesso a tabelas temporarias

shared_buffers

memoria utilizada para operacoes ativas
nao é o total de memoria RAM utilizada pelo Postgres
valores altos diminuem a performance

max_connections

max_connections - maximo de conexoes simultaneas