2008/5/4 José Mello Júnior <[EMAIL PROTECTED]>: > Estou descrevendo uma análise de uma consulta em um trabalho que elaborado > sobre o Postgresql e, a mensagem sobre ela retornou assim: > > Seq Scan on cidade > (cost=0.00..19.60 rows 960 width=51) > > Isto quer dizer exatamente que o custo está em qual grandeza (0,00..19.60)? > > ROWS 960? mas tenho somente 14 registros nesta tabela > > Width=51 é perfeitamente compreensível uma vez que a largura da coluna > nome_cidade que está na cláusula ORDEM tem 50 caracteres e a coluna > codigo_cidade é um serial. > > Select * from cidade order by nome_cidade, codigo_cidade > > -- Table: cidade > -- DROP TABLE cidade; > CREATE TABLE cidade > ( > codigo_cidade serial NOT NULL, > nome_cidade character varying(50), > codigo_subregiao integer, > CONSTRAINT cidade_pkey PRIMARY KEY (codigo_cidade), > CONSTRAINT fk_subregiao FOREIGN KEY (codigo_subregiao) > REFERENCES subregiao (codigo_subregiao) MATCH SIMPLE > ON UPDATE CASCADE ON DELETE CASCADE > ) > WITH OIDS; > ALTER TABLE cidade OWNER TO postgres; > > -- Index: fki_subregiao > -- DROP INDEX fki_subregiao; > CREATE INDEX fki_subregiao > ON cidade > USING btree > (codigo_subregiao); >
No lugar de um EXPLAIN puro rode um EXPLAIN ANALYZE pois ele mostrará não apenas o que foi estimado mas, também, o custo efetivo real. Caso exista divergência indica que as estatísticas de seu bd estão desatualizadas. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
