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

Responder a